我想在我的RShiny应用程序中有一个固定宽度的侧边栏,该边栏在调整窗口大小时保持不变。
我设法获得了固定宽度的侧边栏,但是侧边栏和主面板之间仍然有白色间距。似乎应该对此有一个简单的解决方案,但是我的搜索到目前为止是徒劳的。
这是一个基于“旧忠实间歇泉数据”模板的最小示例。我添加了使侧面板保持固定宽度的标签。
#lang racket
(define ht (make-weak-hasheq))
(define next 0)
(define (get-id x)
(define id (hash-ref ht x #f))
(or id
(begin0
next
(hash-set! ht x next)
(set! next (+ next 1)))))
(get-id 'a)
(get-id 'b)
(get-id 'a)
正常输出看起来不错。
拖动窗口时,侧栏会变得很宽,从主面板上占用了宝贵的屏幕空间。
固定侧栏面板的宽度时,在扩展窗口时它会保持形状,但主面板无法利用整个区域。期望的反应是侧栏面板保持尺寸不变,而主面板可以利用所有可用空间。
有人对如何解决这个问题有任何想法吗?谢谢!
答案 0 :(得分:1)
这样可以吗?:
library(shiny)
ui <- fluidPage(
tags$head(
tags$style(type="text/css", "select { max-width: 240px; }"),
tags$style(type="text/css", ".span4 { max-width: 290px; }"),
tags$style(type="text/css", ".well { max-width: 280px; }")
),
titlePanel("Old Faithful Geyser Data"),
div(
style = "display:flex; align-items:flex-start",
wellPanel( # sidebar
sliderInput("bins", "Number of bins:", min = 1, max = 50, value = 30),
textInput("text", "Enter text:")
),
div( # main panel
style = "flex-grow:1; resize:horizontal; overflow: hidden",
plotOutput("distPlot")
)
)
)
server <- function(input, output) {
output$distPlot <- renderPlot({
x <- faithful[, 2]
bins <- seq(min(x), max(x), length.out = input$bins + 1)
hist(x, breaks = bins, col = 'darkgray', border = 'white')
})
}
shinyApp(ui = ui, server = server)