如何在shinydashboard中添加浮动按钮

时间:2018-03-07 12:58:23

标签: r shiny floating-action-button shinydashboard shinyjs

我正在做一些我需要在shinydashboard中使用浮动按钮的东西。下面是使用shinyMaterial包获取浮动按钮的代码。

library(shiny)
library(shinymaterial)

# Wrap shinymaterial apps in material_page
ui <- material_page(title = "Basic Page",
      tags$h1("Page Content"),

      material_floating_button(
        input_id = "example_floating_button",
        icon = "live_help",
        depth = 5,
        color = "red lighten-3"
      )
    )

    server <- function(input, output) {

    }
    shinyApp(ui = ui, server = server)

当我尝试使用shinydashboard中shinymaterial库中的浮动按钮时,它不起作用。任何帮助表示赞赏,如果每个页面上都有一个浮动按钮,我想要的只是...使用任何库。

library(shiny)
library(shinydashboard)
library(dplyr)
library("shinymaterial")

ui <- dashboardPage(
          dashboardHeader(dropdownMenuOutput("notificationMenu")),
                              dashboardSidebar(sidebarMenu(menuItem("Page 1", tabName = "page1"),
                                                 menuItem("Page 2", tabName = "page2"))),
          dashboardBody(tabItems(
            tabItem(tabName = "page1", h4("This is Page 1"),
                    material_floating_button(
                                input_id = "example_floating_button",
                                icon = "live_help",
                                depth = 5,
                                color = "red lighten-3"
                              )),
            tabItem(tabName = "page2", 
                              textInput("text", "Enter News:", "New News."),
                              actionButton("save", "Save"))
            )))

server <- function(input, output, session){
  raw_news <- reactiveValues()

  # Intial Header News: 1 Message from Admin
  raw_news$news <- data_frame(from = "Admin", text = "this is a message")

  # The notifications in header
  output$notificationMenu <- renderMenu({
    raw_news <- raw_news$news

    dropdownMenu(
      messageItem(raw_news$from[1], raw_news$text[1])
      )
  })

  # save a new notification
  observeEvent(input$save, {
    raw_news$news <- data.frame(from = "User", text = input$text)
  }) 
}

shinyApp(ui = ui, server = server)

1 个答案:

答案 0 :(得分:1)

只需使用actionButton中的fixedPanel代替。

tabItem(tabName = "page1", h4("This is Page 1"),

        fixedPanel(
          actionButton("test", label = "test"),
          right = 10,
          bottom = 10
        )
),