Как отобразить встроенные виджеты в блестящем

У меня есть приведенный ниже код для отображения встроенных виджетов (в той же строке) блестящими

div(style="display:inline-block; width: 150px;height: 75px;",selectInput("ddllgra", "Function:",c('mean','median','sd','count','min','max'), selected='mean')),
div(style="display:inline-block; width: 150px;height: 75px;",textInput(inputId="xlimitsmax", label="x-max", value = 0.5))

Он выходит в пользовательском интерфейсе, но не в том же порядке строк. один входит в верхнюю сторону, а другой входит в нижнюю сторону по одной и той же линии.

Есть ли способ исправить это несоответствие?


person vanathaiyan    schedule 19.04.2016    source источник
comment
Как ни странно, если я использую RStudio Viewer, все выравнивается. Какой браузер вы используете?   -  person K. Rohde    schedule 19.04.2016


Ответы (2)


Добавьте vertical-align:top к style

rm(list = ls())
library(shiny)

ui <- fluidPage(
    sidebarPanel(
          div(style="display: inline-block;vertical-align:top; width: 150px;",selectInput("ddllgra", "Function:",c('mean','median','sd','count','min','max'), selected='mean')),
          div(style="display: inline-block;vertical-align:top; width: 150px;",textInput(inputId="xlimitsmax", label="x-max", value = 0.5))),
    mainPanel()
)
server <- shinyServer(function(input,output){})
shinyApp(ui, server)

введите описание изображения здесь

Редактировать: как добавить пробел между элементами div

Вы можете использовать тот же подход: пример ниже имеет 100px между div

rm(list = ls())
library(shiny)

ui <- fluidPage(
  sidebarPanel(
    div(style="display: inline-block;vertical-align:top; width: 150px;",selectInput("ddllgra", "Function:",c('mean','median','sd','count','min','max'), selected='mean')),
    div(style="display: inline-block;vertical-align:top; width: 100px;",HTML("<br>")),
    div(style="display: inline-block;vertical-align:top; width: 150px;",textInput(inputId="xlimitsmax", label="x-max", value = 0.5))),
  mainPanel()
)
server <- shinyServer(function(input,output){})
shinyApp(ui, server)

введите описание изображения здесь

person Pork Chop    schedule 19.04.2016
comment
Спасибо. это помогло мне. Также есть ли способ создать пространство между виджетами? - person vanathaiyan; 19.04.2016
comment
@PorkChop На основании вашего ответа reg. пространство между виджетами (в строке), мне хотелось бы знать, можем ли мы контролировать пространство между виджетами, когда они находятся в разных строках. Допустим, у меня есть «4» виджета в 2 строках X 2 столбца, и я хочу уменьшить расстояние между первой и второй строками. См. ссылку - person SatishR; 03.11.2016
comment
хорошо, но как бы вы сделали 2 виджета x 2 строки в случае sidebarPanel? - person c1au61o_HH; 19.11.2019

Вы должны создать FluidPage с FluidRow, а затем использовать функцию столбца.

     fluidPage(fluidRow(
                        column(2, selectInput()),
                        column(1, selectInput()),
                        column(2, textInput())
                        )
               )

Подробнее см. FluidPage, FluidRow и столбец в ссылках на блестящие функции: http://shiny.rstudio.com/reference/shiny/latest/

person Berecht    schedule 19.04.2016
comment
Да. я пробовал это. взяв ваш код в качестве примера, я не буду показывать selectinput в некоторых случаях на основе пользовательского ввода. в этом случае textinput должен появиться первым вместо selectinput. но этого не происходит при использовании Fluidrow. - person vanathaiyan; 19.04.2016