包的tabsetPanel函数的宽度问题闪亮

时间:2018-01-08 10:14:23

标签: html r shiny panel

我来这里是为了解决一个看似简单的问题。我想使用tabsetPanel函数使我的面板反应。但是当我使用它时,在我的页面顶部和我的两个面板的名称之间会创建一个空白区域。

下面是一个可复制的例子:

library(shiny)
library(shinydashboard)

ui <- fluidPage(

tabBox(width = 12,title=htmlOutput('Date_Panel'),
     tabsetPanel(id = "AB",

                 tabPanel(
                   value = "A",
                   title = span(icon("lightbulb-o"), HTML('&nbsp;'), strong("A"), style="color:#FE5815;")
                 ),
                 tabPanel(
                   value = "B",
                   title = span(icon("fire-o"), HTML('&nbsp;'), strong("B"), style="color:#FE5815;")
                 )
     )
 )
)

 server <- function(input, output, session) {
  output$Date_Panel <- renderText(if(input$AB=='A'){
  text='title_A'
   }
   else{
   text='title_B'

  }

   )
   }

   shinyApp(ui, server)

当我们删除tabsetPanel函数时,空格不在此处。我想在没有任何奇怪空间的情况下使用此功能。

先谢谢你的帮助。

1 个答案:

答案 0 :(得分:1)

要删除空格,您可以从ui代码中删除tabsetPanel:

你的ui代码中的修改将是这样的:

ui <- fluidPage(

  tabBox(width = 12,title="Title",
         # tabsetPanel(id = "AB",

                     tabPanel(
                       value = "A",
                       title = span(icon("lightbulb-o"), HTML('&nbsp;'), strong("A"), style="color:#FE5815;")
                     ),
                     tabPanel(
                       value = "B",
                       title = span(icon("fire-o"), HTML('&nbsp;'), strong("B"), style="color:#FE5815;")
                     )
         # )
  )
)

通过此修改,您将获得如下所示的输出: enter image description here

修改

您可以根据tabsetPanel的ID更改标题,而不是tabBox。看看这段代码:

    library(shiny)
    library(shinydashboard)

    ui <- fluidPage(

      tabBox(width = 12,title=htmlOutput('Date_Panel'), id = "AB",
              # tabsetPanel(id = "AB",

                         tabPanel(
                           value = "A",
                           title = span(icon("lightbulb-o"), HTML('&nbsp;'), strong("A"), style="color:#FE5815;")
                         ),
                         tabPanel(
                           value = "B",
                           title = span(icon("fire-o"), HTML('&nbsp;'), strong("B"), style="color:#FE5815;")
                         )
              # )
      )
    )

    server <- function(input, output, session) {
      output$Date_Panel <- renderText(if(input$AB=='A'){
        text='title_A'
      }
      else{
        text='title_B'

      }

      )
    }

shinyApp(ui, server)

通过这种方式,您可以获得所需的输出。

希望它有所帮助!