Dropdown Button
Create a dropdown menu with Bootstrap where you can put input elements.
dropdownButton( ..., circle = TRUE, status = "default", size = "default", icon = NULL, label = NULL, tooltip = FALSE, right = FALSE, up = FALSE, width = NULL, margin = "10px", inline = FALSE, inputId = NULL )
... |
List of tag to be displayed into the dropdown menu. |
circle |
Logical. Use a circle button |
status |
Add a class to the buttons, you can use Bootstrap status like 'info', 'primary', 'danger', 'warning' or 'success'.
Or use an arbitrary strings to add a custom class, e.g. : with |
size |
Size of the button : default, lg, sm, xs. |
icon |
An icon to appear on the button. |
label |
Label to appear on the button. If circle = TRUE and tooltip = TRUE, label is used in tooltip. |
tooltip |
Put a tooltip on the button, you can customize tooltip with |
right |
Logical. The dropdown menu starts on the right. |
up |
Logical. Display the dropdown menu above. |
width |
Width of the dropdown menu content. |
margin |
Value of the dropdown margin-right and margin-left menu content. |
inline |
use an inline ( |
inputId |
Optional, id for the button, the button act like an |
It is possible to know if a dropdown is open or closed server-side with input$<inputId>_state
.
pickerInput
doesn't work inside dropdownButton
because that's also a
dropdown and you can't nest them. Instead use dropdown
,
it has similar features but is built differently so it works.
## Only run examples in interactive R sessions if (interactive()) { library(shiny) library(shinyWidgets) ui <- fluidPage( dropdownButton( inputId = "mydropdown", label = "Controls", icon = icon("sliders"), status = "primary", circle = FALSE, sliderInput( inputId = "n", label = "Number of observations", min = 10, max = 100, value = 30 ), prettyToggle( inputId = "na", label_on = "NAs keeped", label_off = "NAs removed", icon_on = icon("check"), icon_off = icon("remove") ) ), tags$div(style = "height: 140px;"), # spacing verbatimTextOutput(outputId = "out"), verbatimTextOutput(outputId = "state") ) server <- function(input, output, session) { output$out <- renderPrint({ cat( " # n\n", input$n, "\n", "# na\n", input$na ) }) output$state <- renderPrint({ cat("Open:", input$mydropdown_state) }) } shinyApp(ui, server) }
Please choose more modern alternatives, such as Google Chrome or Mozilla Firefox.