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

时间:2018-11-27 13:41:17

标签: r shiny

我想构建一个多页闪亮的应用程序,在这里我可以控制用户可以看到的页面。 Dean Attali执行something similiar in this demonstration app,使用shinyjs隐藏和显示每个页面。

如果可以隐藏导航栏或导航列表,我想using navbar(), navlist() or tabsetPanel()可能还有其他方法。优点是只需通过updateTabsetPanel()updateNavbarPage()updateNavlistPabel()更新页面,并且不再需要shinyjs

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

可以在此处找到示例应用程序:https://shiny.rstudio.com/gallery/navbar-example.html。我试图在此示例中包括一些CSS以隐藏导航栏,但直到现在,我仅设法隐藏了所有内容(通过将.navbar设置为visible:hidden)或除navbar-title以外的所有内容(通过将.navbar-nav设置为visible :隐)。隐藏的正确元素是什么-或隐藏的元素和子元素重新显示的正确组合是什么?

编辑:正如Chabo所指出的那样-主要问题似乎是当导航栏的可见性设置为隐藏,甚至display = none时,该应用程序不会设置活动标签没有其他显示。

#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)

0 个答案:

没有答案