我在Column中有一个ListView。在该ListView中,我想放置几个ListTiles。不幸的是,滚动时这些图块的行为很奇怪。它们显示在Column中放置的其他部件的顶部
有没有办法防止ListTile的这种行为?
下面是我的代码:
Column(children: [
const ChatHeader(),
Padding(
padding: const EdgeInsets.all(8),
child: SizedBox(
height: 300,
child: ListView.builder(
padding: const EdgeInsets.only(left: 8, right: 8),
scrollDirection: Axis.vertical,
itemCount: myCollection,
shrinkWrap: true,
physics: const BouncingScrollPhysics(),
itemBuilder: (BuildContext context, int index) {
var item = myCollection[index];
return Column(children: [
Row(
children: [
Container(
decoration: boxDecoration(
radius: 20, bgColor: d_colorPrimary)),
text("${item.value1}", fontSize: textSizeMedium)
],
),
ListTile(
dense: true,
shape: const RoundedRectangleBorder(
borderRadius: BorderRadius.all(Radius.circular(8))),
tileColor: quiz_light_gray,
title: SizedBox(
child: text(item.name,
fontSize: textSizeMedium,
textColor: d_textColorPrimary,
isLongText: true,
maxLine: 10)))
]);
}))),
16.height,
Container(color: greenColor, child: Text("text input here"))
]);
用容器替换ListTiles解决了这个问题。据我所知,没有任何属性可以阻止这种行为。仍然要使用ListTiles。
2条答案
按热度按时间5n0oy7gb1#
1.也许这是因为
BouncingScrollPhysics()
的使用。尝试用Neverscrollablescrollphysics()
替换它,或者用Expanded
小部件 Package 整个Listview.builder
。这将使您不会使用shirnkWrap
和physics
属性。1.如果
Container
小部件解决了这个问题,那么您可以尝试用另一个Sizedbox()
小部件 PackageListile()
。mkshixfv2#
我已经将带有ListView的SizedBox Package 在一个Material小部件中,这样就解决了这个问题。