我目前正在使用shinydashboard,但我希望有与主体中的内容相关联的不同的侧边栏菜单。闪亮的仪表板可以做到这一点吗?
例如:
我想要这样的东西 https://gallery.shinyapps.io/CDCPlot/
查看当您单击导航栏选项时,侧边栏菜单以及正文如何变化。
这在shinydashboad 中可能吗?我喜欢闪亮仪表板的外观和感觉,并且不想再回到闪亮的。
底层代码在这里:https://github.com/NLMichaud/WeeklyCDCPlot/blob/master/ui.R
并使用选项卡面板和导航栏。 Shinydashboard中有类似的东西吗?
有代码示例吗?
谢谢!
您要问的问题很棘手,可能不可能,因为在闪亮的仪表板中,顶级导航控件位于仪表板侧边栏(左侧)内,内容包含在仪表板主体(右侧)内。如果您将 navMenu 放置在仪表板主体内,则它必须属于特定的侧边栏项目,并且如果您稍后单击另一个侧边栏项目,它将消失。
您可能需要改变实现这一目标的方式。根据您想做什么,您可以尝试:
创建一个仪表板侧边栏,其中包含通常位于顶部菜单中的菜单项,您可以将该菜单的所有控件放置在关联的 tabItem 下。您甚至可以通过在 server.R 中使用
renderMenu()
使其全部动态化:
output$menu <- renderMenu({
sidebarMenu(id = "sidebMenu",
menuItem("Load Data", tabName = "loadData", icon = icon("database"),
actionButton("press", "Press me")
)
})
这样做的缺点可能是,您可以在侧边栏菜单中放入的控件数量有限,但它看起来仍然不错。但这就是仪表板的制作方式。
或
使用不带侧边栏的全屏仪表板和
dashboardSidebar(disable = TRUE)
,并以与您提到的示例类似的方式使用导航菜单。您将没有闪亮仪表板的侧边栏,并且您必须像示例中一样制作自己的侧边栏。这样,您可能仍然喜欢shinydashboard提供的其他功能,如通知、框、皮肤、状态框等。但这只是一个建议,这取决于您。
希望这有帮助。
闪亮仪表板的问题是,默认情况下,它不允许标题上有导航栏,这就是我假设的你所要求的。基本上是这样,因为使用 HTML、CSS 和 JS 进行响应式设计的 Bootstrap 框架不包含该选项。因此,如果您在互联网上搜索,有多种方法可以做到这一点。但它们都有一个共同点:逻辑。您需要修改 HTML 以包含您正在查找的选项:
为了能够浏览不同的面板,其逻辑与标准的闪亮仪表板有点不同。
也许你想要类似的东西:
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)