Skip to contents

Build a navbar layout element to insert in f7SingleLayout, f7TabLayout or f7SplitLayout.

updateF7Navbar toggles an f7Navbar component from the server.

Usage

f7Navbar(
  ...,
  subNavbar = NULL,
  title = NULL,
  subtitle = deprecated(),
  hairline = TRUE,
  shadow = deprecated(),
  bigger = FALSE,
  transparent = FALSE,
  leftPanel = FALSE,
  rightPanel = FALSE
)

updateF7Navbar(
  animate = TRUE,
  hideStatusbar = FALSE,
  session = shiny::getDefaultReactiveDomain()
)

Arguments

...

Slot for f7SearchbarTrigger. Not compatible with f7Panel.

subNavbar

f7SubNavbar slot, if any.

title

Navbar title.

subtitle

[Deprecated]: removed from Framework7.

hairline

Whether to display a thin border on the top of the navbar. TRUE by default, for ios.

shadow

[Deprecated]: removed from Framework7.

bigger

Whether to display bigger title. FALSE by default. Title becomes smaller when scrolling down the page.

transparent

Whether the navbar should be transparent. FALSE by default. Only works if bigger is TRUE.

leftPanel

Whether to enable the left panel. FALSE by default. You can also pass a list of shiny tag with shiny::tagList, such as an icon or text. This is useful when using the yet experimental routable API with f7MultiLayout.

rightPanel

Whether to enable the right panel. FALSE by default. You can also pass a list of shiny tags with shiny::tagList, such as an icon or text. This is useful when using the yet experimental routable API with f7MultiLayout.

animate

Whether it should be hidden with animation or not. By default is TRUE.

hideStatusbar

When FALSE (default) it hides navbar partially keeping space required to cover statusbar area. Otherwise, navbar will be fully hidden.

session

Shiny session object.

Note

Currently, bigger parameters does mess with the CSS.

Author

David Granjon, dgranjon@ymail.com

Examples

library(shiny)
library(shinyMobile)

app <- shinyApp(
  ui = f7Page(
    title = "Sub Navbar",
    options = list(
      dark = FALSE,
      navbar = list(
        hideOnPageScroll = TRUE,
        mdCenterTitle = TRUE
      )
    ),
    f7SingleLayout(
      panels = tagList(
        f7Panel(
          title = "Left Panel",
          side = "left",
          f7Block("Blabla"),
          effect = "cover"
        ),
        f7Panel(
          title = "Right Panel",
          side = "right",
          f7Block("Blabla"),
          effect = "cover"
        )
      ),
      navbar = f7Navbar(
        subNavbar = f7SubNavbar(
          f7Button(label = "My button"),
          f7Button(label = "My button"),
          f7Button(label = "My button")
        ),
        title = "Title",
        leftPanel = TRUE,
        rightPanel = TRUE
      ),
      f7Block(f7Button(inputId = "toggle", "Toggle navbar")),
      f7Block(
        lapply(1:20, f7Card)
      )
    )
  ),
  server = function(input, output, session) {
    observeEvent(input$toggle, {
      updateF7Navbar()
    })
  }
)

if (interactive() || identical(Sys.getenv("TESTTHAT"), "true")) app