重新缩放窗口时,如何在 R Shiny 中对齐按钮和 verbatimTextOutput 而不重叠和换行?

问题描述 投票:0回答:1

我正在尝试使用

shinyDirButton
verbatimTextOutput
与 R Shiny 中的
fluidRow()
对齐。我面临的问题是,当缩小窗口时,
verbatimTextOutput
shinyDirButton
重叠,并在进一步缩小窗口时跳到新行。当我增加窗口大小时,
verbatimTextOutput
不会与
shinyDirButton
保持恒定的距离。无论窗口大小如何,我都希望按钮和文本输出始终保持在一定距离的同一行。

到目前为止我的代码:

fluidRow(
   column(2,
      shinyDirButton("dir_out_input", label = NULL, title = "Select directory", multiple = FALSE, icon = icon("folder"), viewtype = "detail")
   ),
   column(10,
      verbatimTextOutput("dir_out_output")
   )
)

这是正常比例:

缩小窗口时:

增加窗口时:

我尝试了许多不同的解决方案来解决这个问题,比如使用

span()
或调整
verbatimTextOutput
的边距,但对我来说没有任何效果。我也尝试使用
style
class
变量,但我真的不太了解如何正确使用它们。

r shiny window line-breaks overlap
1个回答
0
投票

我们可以使用

splitLayout
创建固定布局:

library(fs)
library(shiny)
library(shinyFiles)

ui <- fluidPage(
splitLayout(
         shinyDirButton("dir_out_input", label = NULL, title = "Select directory", multiple = FALSE, icon = icon("folder"), viewtype = "detail", style = "height:40px;"),
         verbatimTextOutput("dir_out_output"),
         cellWidths = c("50px", "500px")
  )
)

server <- function(input, output, session) {
  
  roots <- c(wd = '.')
  
  shinyDirChoose(
    input,
    id = "dir_out_input",
    roots = roots,
    updateFreq = 0,
    session,
    defaultPath = "",
    defaultRoot = NULL,
    allowDirCreate = TRUE
  )

  output$dir_out_output <- renderPrint({
    if(all(c("root", "path") %in% names(input$dir_out_input))){
      selected_path <- do.call(path, c(roots[input$dir_out_input$root], input$dir_out_input$path))
      # selected_path <- path_abs(selected_path) # get the absolute path
      selected_path
    } else {
      "No directory selected"
    }
  })
}

shinyApp(ui, server)
© www.soinside.com 2019 - 2024. All rights reserved.