5

我目前正在使用 shinydashboard,但我希望在主体中拥有与内容相关的不同 sidbar 菜单。闪亮的仪表板可以做到这一点吗?

例如:

我想要这样的东西 https://gallery.shinyapps.io/CDCPlot/

了解当您单击导航栏选项时,侧边栏菜单以及正文如何变化。

在shinydashboard中这可能吗?我喜欢 shinydashboard 的外观和感觉,不想再回到闪亮的状态。

底层代码在这里: https ://github.com/NLMichaud/WeeklyCDCPlot/blob/master/ui.R

并使用标签面板和导航栏。Shinydashboard中有类似的东西吗?

有代码示例吗?

谢谢!

4

2 回答 2

3

您要问的问题很棘手,可能无法实现,因为在 shinydashboard 中,顶级导航控件位于 dashboardSidebar 内(左侧),内容包含在 dashboardBody 内(右侧)。如果您在dashboardBody 中放置一个navMenu,它必须属于特定的侧边栏项目,并且如果您稍后单击另一个侧边栏项目,它将消失。

您可能需要改变实现这一目标的方式。根据您想做什么,您可以尝试:

创建一个带有通常会进入顶部菜单的菜单项的dashboardSidebar,您可以将该菜单的所有控件放在关联的tabItem下。renderMenu()您甚至可以使用in server.R使其全部动态化:

output$menu <- renderMenu({
   sidebarMenu(id = "sidebMenu",
       menuItem("Load Data", tabName = "loadData", icon = icon("database"),
          actionButton("press", "Press me")
   )
})

这样做的缺点可能是您可以在侧边栏菜单中放置的控件数量有限,但它仍然看起来不错。但这就是仪表板的制作方式。

或者

使用没有侧边栏的全屏仪表板,dashboardSidebar(disable = TRUE)并以与您提到的示例类似的方式使用导航菜单。您将没有闪亮仪表板的侧边栏,并且您必须像在您的示例中一样制作自己的侧边栏。通过这种方式,您可能仍然喜欢shinydashboard 提供的其他功能,如通知、框、皮肤、状态框等。但这只是一个建议,由您决定。

希望这可以帮助。

于 2016-04-21T05:53:30.430 回答
0

也许你想要类似的东西:

library(shiny)
library(shinydashboard)
library(shinydashboardPlus)
ui <- fluidPage( navbarPage(title = "AA Tester", windowTitle ="AA Tester", id="tabactive", 
                            tabPanel("Explore Funds",icon = icon("table"),tags$body(class="skin-blue sidebar-mini control-sidebar-open",
                                                                                    dashboardPagePlus(sidebar_fullCollapse=TRUE,
                                                                                                                                                          dashboardHeaderPlus(disable = T,
                                                                                                                                                                              enable_rightsidebar = TRUE,
                                                                                                                                                                              rightSidebarIcon = "gears"





                                                                                                                                                          ),


                                                                                                                                                          dashboardSidebar(),

                                                                                                                                                          dashboardBody(

                                                                                                                                                          ),
                                                                                                                                                          rightsidebar = rightSidebar(
                                                                                                                                                            background = "dark",
                                                                                                                                                            rightSidebarTabContent(
                                                                                                                                                              id = 1,
                                                                                                                                                              title = "Controllers",
                                                                                                                                                              icon = "desktop",
                                                                                                                                                              active = TRUE





                                                                                                                                                            ))


                            ))),
                            tabPanel("Holdings Analysis",icon = icon("line-chart"))))
server <- function(input, output, session) {}
shinyApp(ui = ui, server = server)                                                                                                                                                          
于 2019-12-06T17:52:11.707 回答