通过使用 navbarPanel() 并隐藏导航栏构建多页闪亮应用程序用户端(在 ui.R 中)?

2024-05-17

我想构建一个多页闪亮应用程序,我可以在其中控制用户可以看到哪个页面。迪安·阿塔利确实这个演示应用程序中有类似的东西 https://github.com/daattali/advanced-shiny/tree/master/multiple-pages, using shinyjs隐藏和显示每个页面。

我想也有办法做到这一点using navbar(), navlist() or tabsetPanel() https://shiny.rstudio.com/articles/layout-guide.html,如果可以隐藏导航栏或导航列表。优点是只需通过以下方式更新页面updateTabsetPanel(), updateNavbarPage() or updateNavlistPabel(), 然后shinyjs不再需要了。

所以我的问题是:如何隐藏 navbarPanel() 的导航栏,例如使用 CSS?

可以在此处找到示例应用程序:https://shiny.rstudio.com/gallery/navbar-example.html https://shiny.rstudio.com/gallery/navbar-example.html。我尝试在此示例中包含一些 CSS 来隐藏导航栏,但到目前为止,我只能隐藏所有内容(通过将 .navbar 设置为visibility:hidden)或除 navbar-title 之外的所有内容(通过将 .navbar-nav 设置为visibility) :隐)。要隐藏的正确元素是什么?或者要隐藏的元素和要再次可见的子元素的正确组合是什么?

EDIT:正如 Chabo 指出的那样 - 主要问题似乎是当导航栏的可见性设置为隐藏,甚至显示=无时,应用程序不会设置活动选项卡,因此不会显示任何其他内容。

#https://shiny.rstudio.com/gallery/navbar-example.html

library(shiny)

ui<-  navbarPage("Navbar!",
                 tags$head(
                   #here something is wrong. 
                   # .navbar makes everything invisible
                   #.navbar-nav makes everything invisible but the navbar-title
                   tags$style(HTML("
                                   .navbar-nav{
                                      visibility: hidden;
                                   }

                                   ")
                              )
                   ),
           tabPanel("Plot",
                    sidebarLayout(
                      sidebarPanel(
                        radioButtons("plotType", "Plot type",
                                     c("Scatter"="p", "Line"="l")
                        )
                      ),
                      mainPanel(
                        plotOutput("plot")
                      )
                    )
           ),
           tabPanel("Summary",
                    verbatimTextOutput("summary")
           )
)



server<-  function(input, output, session) {
    output$plot <- renderPlot({
      plot(cars, type=input$plotType)
    })

    output$summary <- renderPrint({
      summary(cars)
    })

    output$table <- DT::renderDataTable({
      DT::datatable(cars)
    })
  }



shinyApp(ui, server)

None

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

通过使用 navbarPanel() 并隐藏导航栏构建多页闪亮应用程序用户端(在 ui.R 中)? 的相关文章

随机推荐