【发布时间】:2021-11-25 10:54:21
【问题描述】:
我现在正在使用 Flutter 的无限向下滚动小部件。问题是每个子(项目)小部件的高度应该彼此不同。
在 PagedGridView 中,有一个名为 childAspectRatio 的属性。
这是一个 double 类型的值,默认 1.0
我想让每个子小部件的高度根据其原始大小是灵活的。有没有根据项目的原始大小动态设置 childAspectRatio 的好方法?
如果这是一种不可能的方法,是否有任何其他方法不使用无限滚动加载包来实现每个项目的高度灵活的网格视图和滚动加载?
如何做到这一点?
Widget build(BuildContext context) {
var size = MediaQuery.of(context).size;
final double itemWidth = size.width / 2;
double itemHeight = 0.0;
_displayItem (BuildContext context, Widget item, int index) {
double itemHeight = MediaQuery.of(context).size.height;
print(itemHeight);
return item;
}
return PagedGridView<int, Widget>(
showNewPageProgressIndicatorAsGridChild: true,
showNewPageErrorIndicatorAsGridChild: true,
showNoMoreItemsIndicatorAsGridChild: true,
pagingController: _pagingControllerForDummy,
builderDelegate: PagedChildBuilderDelegate<Widget>(
itemBuilder: (context, item, index) => _displayItem(context, item, index),
),
gridDelegate: SliverGridDelegateWithFixedCrossAxisCount(
childAspectRatio: itemWidth / itemHeight,
crossAxisCount: 2,
),
);
}
【问题讨论】:
-
您似乎想要
GridView,但每个项目的大小不同?当不同的项目被放入网格时,你会在它们之间留下空隙,还是......?你能张贴一张你想要达到的目标吗? -
嗨。莫汉德斯R。是的。但是交错视图不支持无限滚动加载。如果您不介意,您能帮我如何使用具有无限滚动加载功能的交错视图吗?
-
您好,我认为这种方式可以解决您的问题。 stackoverflow.com/a/69509685/6813907
标签: flutter dart flutter-layout flutter-dependencies infinite-scroll