Как я могу иметь выпадающие «куски входов»? - PullRequest
0 голосов
/ 18 апреля 2020

Я знаю, что заголовок не очень понятен, поэтому вот пример:

library(shiny)
library(miniUI)
library(dqshiny)

ui <- miniPage(
  fillRow(flex = c(1, 1),
          fillCol(
            dq_accordion(
              id = "something",
              titles = list("First",
                            "Second"),

              contents = tagList(
                tagList(selectInput("foo",
                                    "foo",
                                    choices = names(mtcars))),

                tagList(
                  textInput("foo_2", "foo 2"),
                  textInput("foo_3", "foo 3"),

                  checkboxInput("foo_4",
                                "foo_4",
                                value = TRUE)
                )
              )
            )
          )
          )
)

server <- function(input, output, session) {}

shinyApp(ui, server)

Как вы можете видеть, при открытии первого dq_accordion (я действительно не знаю, как это назвать), существует большое пустое пространство, которое связано с тем, что пространство под каждым dq_accordion равно наибольшему пространству в одном из dq_accordion. Здесь, например, во втором dq_accordion больше входных данных (и, следовательно, большего пространства), что создает пробел в первом. Это довольно раздражает, потому что если у меня есть dq_accordion с большим количеством входов и один с одним или двумя входами, то последний будет отображать большой пробел.

Знаете ли вы, есть ли способ удалить этот пробел? Если нет, знаете ли вы, если другой пакет предоставляет такую ​​панель раскрывающегося списка?

1 Ответ

0 голосов
/ 20 апреля 2020

Я нашел альтернативу с bsCollapse() и bsCollapsePanel() из пакета {shinyBS}:

library(shiny)
library(miniUI)
library(shinyBS)

ui <- miniPage(
  fillRow(flex = c(1, 1),
          fillCol(
            bsCollapse(
              id = "something",
              bsCollapsePanel(
                title = "First",
                tagList(selectInput("foo",
                                    "foo",
                                    choices = names(mtcars))
                        )
              ),
              bsCollapsePanel(
                title = "Second",
                tagList(
                  textInput("foo_2", "foo 2"),
                  textInput("foo_3", "foo 3"),

                  checkboxInput("foo_4",
                                "foo_4",
                                value = TRUE)
                )
              )
            )
          )
  )
)

server <- function(input, output, session) {}

shinyApp(ui, server)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...