Установить минимальную / максимальную ширину для коробки с шинидашбордом [R] - PullRequest
0 голосов
/ 28 ноября 2018

Я использую Shinydashboard для отображения некоторых графиков, которые я помещаю в коробки.Я обнаружил, что при ширине по умолчанию поля слишком малы, когда приложение не развернуто.Если я изменю ширину, тогда я могу получить правильный размер при открытии приложения, но тогда они слишком велики, когда окно развернуто, и выглядят растянутыми или, по крайней мере, излишне большими.Это потому, что аргумент width является динамическим, поэтому реагирует на размер экрана.

В идеале я хотел бы сохранить этот динамический элемент, но установить минимальную и максимальную ширину для поля.Если это невозможно, я бы хотел установить фиксированную ширину.

Возможно, для этого требуются некоторые знания CSS, которых мне не хватает!

Пример кода с очень упрощенным описанием:

library("shiny")
library("shinydashboard")

sidebar <- dashboardSidebar()

body <- dashboardBody(
            fluidRow(
              box(width = 12)
              )
            )


ui <- dashboardPage(dashboardHeader(title = "Example"),
                sidebar,
                body
                )

server <- function(input, output) {
}

shinyApp(ui, server)

1 Ответ

0 голосов
/ 28 ноября 2018

Я предпочитаю решать подобные проблемы с компоновкой, как правило, использовать систему сетки Bootstrap .Вы можете применить это к своему примеру, как показано в фрагменте кода ниже.Обратите внимание, что я добавил второе поле, чтобы лучше проиллюстрировать поведение, и вы можете поиграться с параметром class, чтобы он соответствовал вашему желаемому поведению.Надеюсь, это поможет!

library("shiny")
library("shinydashboard")

sidebar <- dashboardSidebar()

body <- dashboardBody(
  fluidRow(
    div(class = "col-sm-12 col-md-6 col-lg-4",
    box(width = '100%', title= 'This is the first test box')
    ),
    div(class = "col-sm-12 col-md-6 col-lg-4",
        box(width = '100%', title= 'This is the second test box')
    )
  )
)


ui <- dashboardPage(dashboardHeader(title = "Example"),
                    sidebar,
                    body
)

server <- function(input, output) {
}

shinyApp(ui, server)
...