展开并在行中展开时,如何在不更改布局的情况下包装小部件列表?
Posted
技术标签:
【中文标题】展开并在行中展开时,如何在不更改布局的情况下包装小部件列表?【英文标题】:How to wrap a List of Widgets without changing the layout when unwrapped and spread in a Row? 【发布时间】:2022-01-24 00:46:44 【问题描述】:目前,以下结构为我提供了预期的布局:
Consumer<State>(
builder(context, state, child) => Row(
children: [
Widget1(...), // fixed width
...List.generate(state.length, (index) => Expanded(child: Widget2(index, state))),
]
)
)
Widget1 不需要连接到状态,因此我不希望它在更改时重新呈现。如果List.generate
可以与Consumer
挂钩,那就太好了,但builder
需要返回单个小部件,而不是小部件列表。
我尝试在列表周围使用Wrap
小部件,并将其连接到Consumer
。这实现了我不重新渲染 Widget1 的目标,但它改变了布局 - Widget2 不再扩展以填充剩余空间。
【问题讨论】:
【参考方案1】:这是一个例子:
Row(
children: [
Widget1(...), // fixed width
Consumer<State>(
builder: (context, state, child)
return Expanded(
child: Row(
children: List.generate(
state.length,
(index)
return Expanded(
child: Widget2(index, state),
);
,
),
),
);
,
),
],
),
【讨论】:
以上是关于展开并在行中展开时,如何在不更改布局的情况下包装小部件列表?的主要内容,如果未能解决你的问题,请参考以下文章
如何在不更改布局的情况下跳过/处理 Tailwind 网格中的空单元格? [关闭]
如何在不重建所有 RemoteView 的情况下部分更新应用小部件中的视图
如何在不使用自动收缩的情况下使用不同 iPhone 尺寸的自动布局更改字体大小 [重复]