我在列内添加了一个容器。我给了容器固定宽度设备宽度的60%,高度为设备高度的30%。对于身高,它反映良好,但宽度覆盖整个父对象。 我不确定自己在做什么错。
这是我的代码:
Scaffold(
body: Column(
children: <Widget>[
Container(
width: MediaQuery.of(context).size.width,
height: MediaQuery.of(context).size.height*.30,
child: Container(
width: MediaQuery.of(context).size.width*.20,
height: 40,
child: Text('test'),
color: Colors.blueAccent,
),
),
Expanded(
child: ListView(
children: chatList.map((chatModel) {
return ChatTileWidget(chatModel: chatModel,);
}).toList(),
),
)
],
),
);
答案 0 :(得分:1)
Flutter
中的约束工作原理与平常不同。如果您想给孩子height
和width
,通常会遵循父母的限制。
要详细了解Constraints
中的Flutter
=> Understanding Constraints
要获得所需的内容,您需要使用Align
并将alignment
属性设置为您的首选位置。这是给你的例子。 我用Container
小部件包裹了您的内部Align
,并将alignment
设置为topLeft
,这样就不会占用其父height
和{ {1}}
width
结果
要了解有关 Column(
crossAxisAlignment: CrossAxisAlignment.stretch,
children: <Widget>[
Container(
height: MediaQuery.of(context).size.height * 0.3,
child: Align(
alignment: Alignment.topLeft,
child: Container(
height: 40.0,
color: Colors.blueAccent,
width: MediaQuery.of(context).size.width * 0.2,
child: Text('test')
)
)
)
]
)
的更多信息,请单击此=> Align Class
我希望能回答您的问题:)祝您学习愉快