Почему мой рендеринг жидкости в столбце (см. Изображение) - PullRequest
0 голосов
/ 02 мая 2019

Я помещаю несколько полей ввода в box(), который находится в fluidRow().Но вместо того, чтобы поместить все это в ряд, они отображаются в столбце.Я не могу найти ничего о форматировании полей в liquidRow .....

Я хочу большой блок для группировки неактивных полей ввода.Там будет еще один блок для другой группы реактивных полей ввода.Я попытался положить коробки в коробки, но не смог заставить это работать.Я вижу, что это делается здесь: https://gallery.shinyapps.io/DEApp/

Доступен ли код для этого блестящего приложения галереи, чтобы посмотреть его?Кажется, у меня есть коробка внутри коробки.

1

Вот код:

# Plex dashboard

library(shiny)
library(shinydashboard)

ui <- dashboardPage(

  dashboardHeader(title = "Plexogram"),

  ## Sidebar content
  dashboardSidebar(
    sidebarMenu(
      menuItem("Configure", tabName = "config", icon = icon("tachometer-alt"),
         menuSubItem("View input data", tabName = "input", icon = icon("database"))),

      menuItem("Results", tabName = "results", icon = icon("digital-tachograph "),
        menuSubItem("Results Plot", tabName = "resultsP", icon = icon("chart-line")),
        menuSubItem("Results Table", tabName = "resultsT", icon = icon("table"))),

      menuItem("About Plexogram", tabName = "about", icon = icon("info")),
      menuItem("Documentation", tabName = "document", icon = icon("readme"))
    )
  ),

  ## Body content
  dashboardBody(
    tabItems(
      # First tab content
      tabItem(tabName = "input",
              fluidRow(
                box(
                radioButtons(inputId="header", label="Header in data file?", 
                      choices=c("True" = TRUE,
                             "False" = FALSE), selected = NULL,
                                             inline = FALSE, width = '80px'),
                numericInput(inputId="skip", label="Skip rows before data?", value=0, min = 0, width = '80px'),
                textInput(inputId="timeFormat", label="Time format (R syntax)", value = "", width = '80px', placeholder = "%Y%m%d%MM%HH"),
                title="File-related parameters", status="primary", width=12, solidHeader = TRUE, collapsible = TRUE)  # end outer box
              ),    #  close fluidrow
              fluidRow(
                box(plotOutput("plot1", height = 250)),

                box(
                  title = "Controls",
                  sliderInput("slider", "Number of observations:", 1, 100, 50)
                )
              )
      ),
      # Second tab content
      tabItem(tabName = "resultsP",
              h2("Results tab content")
      )

      )  #  end of tabItems
    )  #  end of dashboardBody
)  #  end if UI

server <- function(input, output) {

}

shinyApp(ui = ui, server = server)

1 Ответ

0 голосов
/ 02 мая 2019

Вам нужно использовать столбцы, чтобы назначить каждый элемент некоторому горизонтальному пространству в liquidRow.Ширина каждой жидкости по умолчанию равна 12. Я назначил каждому столбцу ширину 4, чтобы они были на равном расстоянии друг от друга.Без столбцов и назначения ширины каждый элемент будет иметь ширину 12, в результате чего они будут накладываться друг на друга.

ui <- dashboardPage(

  dashboardHeader(title = "Plexogram"),

  ## Sidebar content
  dashboardSidebar(
    sidebarMenu(
      menuItem("Configure", tabName = "config", icon = icon("tachometer-alt"),
               menuSubItem("View input data", tabName = "input", icon = icon("database"))),

      menuItem("Results", tabName = "results", icon = icon("digital-tachograph "),
               menuSubItem("Results Plot", tabName = "resultsP", icon = icon("chart-line")),
               menuSubItem("Results Table", tabName = "resultsT", icon = icon("table"))),

      menuItem("About Plexogram", tabName = "about", icon = icon("info")),
      menuItem("Documentation", tabName = "document", icon = icon("readme"))
    )
  ),

  ## Body content
  dashboardBody(
    tabItems(
      # First tab content
      tabItem(tabName = "input",
              fluidRow(
                box(
                  column(width=4, 
                         radioButtons(inputId="header", label="Header in data file?", 
                                      choices=c("True" = TRUE,
                                                "False" = FALSE), selected = NULL,
                                      inline = FALSE, width = '80px')
                         ),
                  column(width=4,
                         numericInput(inputId="skip", label="Skip rows before data?", value=0, min = 0, width = '80px')
                         ),
                  column(width=4,
                    textInput(inputId="timeFormat", label="Time format (R syntax)", value = "", width = '80px', placeholder = "%Y%m%d%MM%HH")
                  ),
                  title="File-related parameters", status="primary", width=12, solidHeader = TRUE, collapsible = TRUE)  # end outer box
              ),    #  close fluidrow
              fluidRow(
                box(plotOutput("plot1", height = 250)),

                box(
                  title = "Controls",
                  sliderInput("slider", "Number of observations:", 1, 100, 50)
                )
              )
      ),
      # Second tab content
      tabItem(tabName = "resultsP",
              h2("Results tab content")
      )

    )  #  end of tabItems
  )  #  end of dashboardBody
)  #  end if UI
...