列子容器覆盖父容器的整个宽度

时间:2020-07-10 05:50:55

标签: flutter dart flutter-layout

我在列内添加了一个容器。我给了容器固定宽度设备宽度的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(),
            ),
          )
        ],
      ),
    );

1 个答案:

答案 0 :(得分:1)

Flutter中的约束工作原理与平常不同。如果您想给孩子heightwidth,通常会遵循父母的限制。

要详细了解Constraints中的Flutter => Understanding Constraints

要获得所需的内容,您需要使用Align并将alignment属性设置为您的首选位置。这是给你的例子。 我用Container小部件包裹了您的内部Align,并将alignment设置为topLeft,这样就不会占用其父height和{ {1}}

width

结果

RESULTANT IMAGE

要了解有关 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

我希望能回答您的问题:)祝您学习愉快