【发布时间】:2021-11-04 12:46:52
【问题描述】:
场景 1:一个 ListView 有 10 个子小部件,每个小部件的水平对称内边距为 20.0。
return ListView(
children: <Widget>[
Padding(
padding: const EdgeInsets.symmetric(horizontal: 20.0),
child: Widget1),
Padding(
padding: const EdgeInsets.symmetric(horizontal: 20.0),
child: Widget2),
// ...8 more like that...
],);
场景 2: ListView 有 10 个没有任何填充的子小部件。而是将 20.0 的对称水平填充应用于 ListView 本身。
return Padding(
padding: const EdgeInsets.symmetric(horizontal: 20.0),
child: ListView(
children: <Widget>[
Widget1,
Widget2,
// ...8 more like that...
],),);
在场景 1 中是否会有更多开销(在 UI 线程中)?还是会几乎保持不变。
PS:考虑到每个小部件都是不同的,ListView.builder 不是一个选项。
【问题讨论】: