You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用bslib::layout_column_wrap正确渲染卡片列表为二维网格?

解决bslib::layout_column_wrap()传列表显示单列的问题

直接传列表给layout_column_wrap()会出问题,因为这个函数的参数设计是接受多个独立的子元素,而非单个列表对象。你把cards_list整个传进去时,它会被当成单个元素处理,自然就排成了单列。

解决办法很简单,用do.call()把列表拆成函数的多个独立参数传入:

library(tidyverse); library(htmlwidgets); library(bslib)

cards_list <- list(
  card(card_body("card 1")),
  card(card_body("card 2")),
  card(card_body("card 3")),
  card(card_body("card 4"))      
)

do.call(
  layout_column_wrap,
  c(
    list(width=0.5, heights_equal="all", fixed_width=T, fill=T),
    cards_list
  )
)

do.call()的作用是把第二个参数(列表)里的元素,作为第一个参数指定函数的独立参数来调用。这里我们把布局配置参数打包成列表,再和卡片列表合并后传入,效果和你逐个写cards_list[1]、cards_list[2]完全一致,不管列表有几百个元素都能轻松处理。

内容的提问来源于stack exchange,提问作者Gion Mors

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.28 00:07:04