dropdownButton {shinyWidgets} | R Documentation |
Dropdown Button
Description
Create a dropdown menu with Bootstrap where you can put input elements.
Usage
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
)
Arguments
... |
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 |
Details
It is possible to know if a dropdown is open or closed server-side with input$<inputId>_state
.
Note
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.
Examples
## 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("xmark")
)
),
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)
}