2016-04-19 34 views
12

Mam poniższy kod, aby wyświetlić inline widgetów (w tym samym wierszu) w błyszcząceJak wyświetlić widżety inline w błyszczące

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)) 

To wychodzi w interfejsie użytkownika, ale nie w tej samej kolejności linii. jeden wchodzi w górną stronę, a drugi w dolną stronę - tę samą linię.

Czy istnieje sposób korekty tej niewspółosiowości?

+0

Strange wystarczy, jeśli używam RStudio Viewer, wszystko jest ustawione. Z której przeglądarki korzystasz? –

+0

Używam Chrome – vanathaiyan

Odpowiedz

15

Dodaj vertical-align:top do 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) 

enter image description here

EDIT: Jak dodaj przestrzeń między divami

Można użyć tego samego podejścia: Poniższy przykład ma 100px pomiędzy 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) 

enter image description here

+0

Dzięki. to mi pomogło. Czy istnieje również sposób na tworzenie przestrzeni między widżetami? – vanathaiyan

+1

Zobacz "edytuj" powyżej –

+0

Dziękuję bardzo ... – vanathaiyan

9

Powinieneś utworzyć stronę fluidu z płynem, a następnie użyć funkcji kolumny.

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

Więcej szczegółów, patrzeć fluidPage, fluidRow i kolumny wewnątrz błyszczące odniesień funkcyjnych: http://shiny.rstudio.com/reference/shiny/latest/

+0

Tak. próbowałem tego. biorąc swój kod jako próbkę, nie pokażę wyboru w niektórych przypadkach na podstawie danych wprowadzonych przez użytkownika. w takim przypadku textinput powinien pojawić się jako pierwszy w miejscu selectinput. ale nie dzieje się to za pomocą fluidówki. – vanathaiyan

+0

To zadziałało dla mnie. Łatwy peasy cytryny squeezy –