Благодаря @SimonLarsen мне удалось найти решение.Shiny предлагает flowLayout()
, который поддерживает этот вид макета.К сожалению, блоки shinydashboard не могут быть использованы в этой структуре, потому что они ожидают значения ширины в рамках сетки начальной загрузки.Вам придется изменить реализацию shinydashbaord::box()
для работы со значениями ширины в пикселях, и это приведет к возникновению множества других проблем в будущем.
Я выбрал следующее решение:
shiny::fluidRow(
shinydashboard::box(
width = 12,
shiny::div(
style = "overflow-x: scroll",
shiny::flowLayout(
cellArgs = list(
style = "
min-width: 300px;
width: auto;
height: auto;
border: 1px solid darkgray;
padding: 10px;
margin: 10px;
"),
plotly::plotlyOutput(
width = "500px",
ns("plot1")
),
plotly::plotlyOutput(
width = "500px",
ns("plot1")
),
plotly::plotlyOutput(
width = "1045px",
ns("plot2")
)
)
)
)
)
Я строю свои собственные блоки с фиксированной высотой и для каждого элемента графика / контента индивидуально определенной ширины.