为什么按钮停留在同一行而textInputs没有?

时间:2018-11-27 20:44:13

标签: r shiny

我希望按钮和textinputs在同一行上。这些按钮位于同一行,但textInputs位于新行。我不明白为什么。

ui  =   fluidPage(
    textInput("ti1", "TI1"),
    actionButton("Button1", "B1"),
    actionButton("Button2", "B2"),
    textInput("ti2", "TI2")
)

server <- function(input, output) {}

shinyApp(ui= ui, server=server)

1 个答案:

答案 0 :(得分:3)

如下所示,textInput()将其输出包装在HTML div元素中,而actionButton则没有。 div元素的默认行为是在视觉上隔离它们的内容,实际上是在元素之前和之后添加一个换行符,这就是您所看到的。

textInput("ti1", "TI1")
## <div class="form-group shiny-input-container">
##   <label for="ti1">TI1</label>
##   <input id="ti1" type="text" class="form-control" value=""/>
## </div>

actionButton("Button1", "B1")
##  <button id="Button1" type="button" class="btn btn-default action-button">B1</button>

如果您想在一行上输入多个文本(和/或在各自的行上分别输入多个操作按钮),则可以使用功能fluidRow()column(),如下所示:

ui <- fluidPage(
    fluidRow(
        column(width = 4,
               textInput("ti2", "TI2")),
        column(width = 4,
               textInput("ti1", "TI1"))
    ),
    fluidRow(actionButton("Button1", "B1")),
    fluidRow(actionButton("Button2", "B2"))
)

server <- function(input, output) {}

shinyApp(ui= ui, server=server)