修复R Shiny UI中的项目(按钮),使其不移动

时间:2018-01-29 14:37:04

标签: r layout shiny

我对Shiny R很新,所以我不知道我错过了一些明显的东西。

我在侧面板中创建了一个带有操作按钮的UI。单击按钮时,用户选择一个文件夹,该文件夹的内容将作为新项目显示在按钮下方的文本中。

但是,当文本出现时,第一个按钮下方的按钮会向下移动。因此,根据用户输入,当出现新项目时,一切都会移动。

我认为这看起来不太好,有没有办法让物品(动作按钮)保持在原位,即使出现新项目?例如,将物品固定在一个地方,这样就有足够的空间让新物品出现。

这是我创建布局的代码。

ui <- fluidPage(
  titlePanel(h2("title")),
  sidebarLayout(
    sidebarPanel(
shinyDirButton("myFolder", "Click to select folder with input files" ,
                            title = "Select the input folder",
                            buttonType = "default", class = NULL),
             h4("Content of input folder"),
             verbatimTextOutput("table1", placeholder = T),
             br(),

             shinyFilesButton("newFile", "Click to select file" ,
                              title = "Select file",
                              buttonType = "default", class = NULL, multiple = F),
             textOutput("filepathShow")
   )
  )
 )



server <- function(input,output,session){

  observe({
  shinyDirChoose(input, "myFolder", roots = c(home = '~'), session = session)
   myInputDir2 <- parseDirPath(c(home = '~'), input$myFolder)
   listText <- list.files(myInputDir2, full.names = F)
   mylist <- data.frame(listText)

  output$table1 <- renderText(paste(mylist[,1], collapse = ", "))


      shinyFileChoose(input, "newFile", roots = c(home = '~'), session = session)
      myFile <- parseFilePaths(c(home = '~'), input$newFile)
      myfilepath <- myFile$datapath

      output$filepathShow <- renderText(as.character(myfilepath))
})
}

1 个答案:

答案 0 :(得分:1)

我认为这解决了你的问题,把文字放在一个带溢出的div中:auto并设置你想要的高度

  h4("Content of input folder"),
  HTML("<div style ='overflow:auto; height: 180px;'>"),
  verbatimTextOutput("table1", placeholder = T),
  HTML("</div>"),