有没有办法在 bslib 侧边栏中使用填充项?

问题描述 投票:0回答:1

我找不到在 bslib 侧边栏中使用填充项目的方法。

在本例中,我尝试将一个元素放在侧边栏的底部。

Layout_sidebar 是可填充的,但只有主区域是可填充的:

这会将顶部和底部元素正确放置在主区域中:

library(bslib)

ui <- page_fillable(
  layout_sidebar(
    # sidebar = sidebar(
      card(
        fill = TRUE,
        fillable = TRUE,
        card_body(
          fill = FALSE,
          h1("top")
        ),
        card_body(
          fill = TRUE
        ),
        card_body(
          fill = FALSE,
          h1("bottom")
        )
      )
    # )
  )
)

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

shinyApp(ui, server)

可填充的主要区域

我希望在侧边栏中有相同的行为

library(bslib)

ui <- page_fillable(
  layout_sidebar(
    sidebar = sidebar(
      fillable = TRUE,
      card(
        fill = TRUE,
        fillable = TRUE,
        card_body(
          fill = FALSE,
          h1("top")
        ),
        card_body(
          fill = TRUE
        ),
        card_body(
          fill = FALSE,
          h1("bottom")
        )
      )
    )
  )
)

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

shinyApp(ui, server)

不可填充侧边栏

我尝试在侧边栏上使用 as_fill_carrier() 但它返回此警告: 警告:

bindFillRole()
仅适用于 htmltools::tag() 对象(例如 div()、p() 等),不适用于“bslib_sidebar”类型的对象。

r shiny bslib
1个回答
0
投票

我认为您正在侧边栏中寻找以下内容:

library(bslib)

ui <- page_fillable(
  layout_sidebar(
    sidebar = sidebar(
      fillable = TRUE,
      card(
        fill = TRUE,
        fillable = TRUE,
        card_body(
          fill = FALSE,
          h1("top")
        ),
        card_body(
          fill = TRUE
        ),
        card_body(
          fill = FALSE,
          h1("bottom",style = "margin-top:400px;")
        )
      )
    )
  )
)

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

shinyApp(ui, server)

只需一点 CSS 即可将底部元素向下推:

card_body(
          fill = FALSE,
          h1("bottom",style = "margin-top:400px;")
        )
      )

enter image description here

如果您想进一步向下移动元素,可以使用 CSS

margin-top
参数。

希望这有帮助!

© www.soinside.com 2019 - 2024. All rights reserved.