闪亮包的 tabsetPanel 函数的宽度问题
Width issue with the tabsetPanel function of the package shiny
我来这里是为了解决一个看似简单的问题。我想使用 tabsetPanel 函数使我的面板具有反应性。但是当我使用它时,在我的页面顶部和我的两个面板的名称之间创建了一个空白 space。
下面是一个可重现的例子:
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(' '), strong("A"), style="color:#FE5815;")
),
tabPanel(
value = "B",
title = span(icon("fire-o"), HTML(' '), 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函数后,空白space就没有了。我想使用这个函数没有任何奇怪 space.
预先感谢您的帮助。
要删除 space,您可以从 ui 代码中删除 tabsetPanel:
您的 ui 代码中的修改将是这样的:
ui <- fluidPage(
tabBox(width = 12,title="Title",
# tabsetPanel(id = "AB",
tabPanel(
value = "A",
title = span(icon("lightbulb-o"), HTML(' '), strong("A"), style="color:#FE5815;")
),
tabPanel(
value = "B",
title = span(icon("fire-o"), HTML(' '), strong("B"), style="color:#FE5815;")
)
# )
)
)
编辑:
您可以根据 tabBox
的 ID 更改标题,而不是 tabsetPanel
。看看这段代码:
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(' '), strong("A"), style="color:#FE5815;")
),
tabPanel(
value = "B",
title = span(icon("fire-o"), HTML(' '), 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 函数使我的面板具有反应性。但是当我使用它时,在我的页面顶部和我的两个面板的名称之间创建了一个空白 space。
下面是一个可重现的例子:
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(' '), strong("A"), style="color:#FE5815;")
),
tabPanel(
value = "B",
title = span(icon("fire-o"), HTML(' '), 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函数后,空白space就没有了。我想使用这个函数没有任何奇怪 space.
预先感谢您的帮助。
要删除 space,您可以从 ui 代码中删除 tabsetPanel:
您的 ui 代码中的修改将是这样的:
ui <- fluidPage(
tabBox(width = 12,title="Title",
# tabsetPanel(id = "AB",
tabPanel(
value = "A",
title = span(icon("lightbulb-o"), HTML(' '), strong("A"), style="color:#FE5815;")
),
tabPanel(
value = "B",
title = span(icon("fire-o"), HTML(' '), strong("B"), style="color:#FE5815;")
)
# )
)
)
编辑:
您可以根据 tabBox
的 ID 更改标题,而不是 tabsetPanel
。看看这段代码:
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(' '), strong("A"), style="color:#FE5815;")
),
tabPanel(
value = "B",
title = span(icon("fire-o"), HTML(' '), 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)
有了这个你就得到了想要的输出。
希望对您有所帮助!