我目前正在使用shinydashboard,但我希望在主体中有与内容相关的不同sidbar menues。 shinydashboard可以实现吗?
例如:
我想要这样的东西 https://gallery.shinyapps.io/CDCPlot/
了解当您单击侧栏菜单更改的导航栏选项以及正文时的方式。
这可能在shinydashboad吗?我喜欢shinydashboard的外观和感觉,宁愿不回光泽。
底层代码在这里:https://github.com/NLMichaud/WeeklyCDCPlot/blob/master/ui.R
并使用tabpanels和navbar。在shinydashboard中有类似的东西吗?
带代码的任何示例?
谢谢!
答案 0 :(得分:2)
您要问的是棘手的,可能无法实现,因为在shinydashboard中,顶级导航控件位于dashboardSidebar内(左侧),内容包含在dashboardBody内(右侧)。如果在dashboardBody中放置navMenu,它必须属于特定的侧边栏项,如果您稍后单击另一个侧边栏项,它将消失。
您可能需要更改实现此目的的方式。根据您的要求,您可以尝试:
创建一个dashboardSidebar,其中包含通常位于顶层菜单中的菜单项,您可以将该菜单的所有控件放在关联的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的侧边栏,你必须像你的例子一样制作自己的侧边栏。这样,你可能仍然喜欢shinydashboard提供的其他功能,如通知,盒子,皮肤,状态框等。但这只是一个建议,它取决于你。
希望这有帮助。
答案 1 :(得分: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)