r语言 - 可以闪亮的仪表板使用表面板,并有一个导航栏



我目前正在使用shinydashboard,但我想有不同的侧边栏菜单与主体内容相关联。shinydashboard能做到吗?

例如:

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

看看当你点击导航栏选项时,侧边栏菜单和主体是如何变化的。

这在shinydashboard中是可能的吗?我喜欢闪亮仪表盘的外观和感觉,不想再回到闪亮的样子。

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

并使用选项卡和导航条。在shinydashboard中也有类似的东西吗?

有代码的例子吗?

谢谢!

您所问的问题很棘手,可能不可能,因为在shinydashboard中,顶层导航控件位于dashboardSidebar(左侧)内,而内容包含在dashboardBody(右侧)内。如果你把一个navMenu放在dashboardBody里面,它就必须属于一个特定的侧边栏项,并且在你以后点击另一个侧边栏项时就会消失。

你可能需要改变你想要实现这一点的方式。根据您想要做的事情,您可以尝试:

创建一个带有菜单项的dashboardSidebar,这些菜单项通常放在top-menu中,并且您可以将该菜单的所有控件放在关联的tabItem下。您甚至可以通过在服务器中使用renderMenu()使其成为动态的。R:

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

这样做的缺点可能是你可以在侧边栏菜单中放置的控件数量有限,而它看起来仍然很好。但这就是仪表盘的制作方法。

dashboardSidebar(disable = TRUE)一起使用没有侧边栏的全屏仪表板,并以与您提到的示例类似的方式使用导航菜单。您将没有shinydashboard的侧边栏,您必须像示例中一样创建自己的侧边栏。这样,你就可以享受到shinydashboard提供的其他功能,如通知、框、皮肤、状态框等。但这只是一个建议,你自己决定。

也许你想要这样:

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)  

最新更新