我有一个容器,其中包含一列容器和 ListView .. 以这种方式: 1. 容器 2. ListView 3. 容器 4. ListView ... 我是这样做的:
Container(
color: Colors.white,
child: Stack(
overflow: Overflow.visible,
children: <Widget>[
new Column(
crossAxisAlignment: CrossAxisAlignment.stretch,
children: <Widget>[
Container(
child: Padding(
padding: EdgeInsets.only(
right: 20.0, left: 20.0, top: 5.0, bottom: 5.0),
child: new Text(
"header1",
),
),
color: Color(0xfff8f8f8),
),
Expanded(
child: ListView.builder(
itemCount: titles.length,
itemBuilder: (BuildContext context, int index) {
return new Padding(
padding: EdgeInsets.only(
left: 20.0, right: 20.0, top: 15.0),
child: .......
);
},
),
),
Container(
child: Padding(
padding: EdgeInsets.only(
right: 20.0, left: 20.0, top: 5.0, bottom: 5.0),
child: new Text(
"header2",
),
),
color: Color(0xfff8f8f8),
),
Expanded(
child: ListView.builder(
itemCount: titles.length,
itemBuilder: (BuildContext context, int index) {
return new Padding(
padding: EdgeInsets.only(
left: 0.0, right: 0.0, top: 0.0),
child: .....
);
},
),
),
],
),
],
),
),
我无法从 ListView 中删除 Expanded .. 如果我这样做了, ListView 将不会出现在列中..
此外,我尝试使用 Flexible,但同样的问题存在..
这就是我需要的..但是第一个 ListView 和第二个容器之间有一个巨大的空间..如何删除这个空白空间并根据内容的高度使 ListView 高度换行?
最佳答案
试试这个代码
ListView(
shrinkWrap: true,
children: <Widget>[
Container(
child: Padding(
padding: EdgeInsets.only(
right: 20.0, left: 20.0, top: 5.0, bottom: 5.0),
child: new Text(
"header1",
),
),
color: Color(0xfff8f8f8),
),
ListView.builder(
physics: NeverScrollableScrollPhysics(),
shrinkWrap: true,
itemCount: titles.length,
itemBuilder: (BuildContext context, int index) {
return new Padding(
padding: EdgeInsets.only(
left: 20.0, right: 20.0, top: 15.0),
child: ListTile(title: Text(titles[index]),)
);
},
),
Container(
child: Padding(
padding: EdgeInsets.only(
right: 20.0, left: 20.0, top: 5.0, bottom: 5.0),
child: new Text(
"header2",
),
),
color: Color(0xfff8f8f8),
),
ListView.builder(
physics: NeverScrollableScrollPhysics(),
shrinkWrap: true,
itemCount: titles.length,
itemBuilder: (BuildContext context, int index) {
return new Padding(
padding: EdgeInsets.only(
left: 0.0, right: 0.0, top: 0.0),
child: ListTile(title: Text(titles[index]),)
);
},
),
],
),
关于dart - ListView 和其他小部件之间的巨大空间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53943905/