我正在尝试使用此代码根据窗口大小自动调整框的高度和重量,即,在最大化窗口的同时,我闪亮的应用程序中的框也应调整其大小。
points()
框的宽度是根据应用程序窗口大小改变其大小,但高度不是?
答案 0 :(得分:2)
请注意plotOutput
的文档说"请注意,对于身高,请使用" auto"或" 100%"通常不会按预期工作,因为使用HTML / CSS计算高度。"
这是一个使用JavaScript来计算浏览器窗口高度的解决方案,将该数字保存为Shiny输入,并将其用作height
plotOutput
}。请记住,可能还有其他方法,我很乐意看到还能做些什么,但这是我们首先想到的。
library(shiny)
library(shinyjs)
shinyjscode <- "
shinyjs.init = function() {
$(window).resize(shinyjs.calcHeight);
}
shinyjs.calcHeight = function() {
Shiny.onInputChange('plotHeight', $(window).height());
}
"
runApp(shinyApp(
ui = fluidPage(
shinyjs::useShinyjs(),
shinyjs::extendShinyjs(text = shinyjscode),
plotOutput("plot")
),
server = function(input, output, session) {
plotHeight <- reactive({
ifelse(is.null(input$plotHeight), 0, input$plotHeight)
})
output$plot <- renderPlot({
plot(1:10)
},
height = plotHeight)
js$calcHeight()
}
))