flutter问题
ListView组件里使用容器Container组件设置固定宽度不生效问题?
虽然任何时候子组件都必须遵守其父组件的约束,但前提条件是它们必须是父子关系,假如有一个组件 A,它的子组件是B,B 的子组件是 C,则 C 必须遵守 B 的约束,同时 B 必须遵守 A 的约束,但是 A 的约束不会直接约束到 C,除非B将A对它自己的约束透传给了C。 利用这个原理,就可以实现一个这样的 B 组件:
B 组件中在布局 C 时不约束C(可以为无限大)。
C 根据自身真实的空间占用来确定自身的大小。
B 在遵守 A 的约束前提下结合子组件的大小确定自身大小。
而这个 B组件就是 UnconstrainedBox
组件,也就是说UnconstrainedBox
的子组件将不再受到约束,大小完全取决于自己。
Container(
color:Color.fromRGBO(225, 237, 83, 0.34),
child: ListView(children: [
UnconstrainedBox(
child: Container(
width: 388,
height: 36,
margin: const EdgeInsets.only(top: 8),
padding: const EdgeInsets.only(left: 8, right: 18),
decoration: new BoxDecoration(
borderRadius: BorderRadius.circular(14),
color: Color.fromRGBO(162, 178, 237, 1),
),),),
])