我正在尝试实现如下图所示。
我有一个网格视图,它有 2 列,我在其中显示我的列表。
正如您在上图中看到的那样,它显示了 175/67 个产品。
我的逻辑是我给我的网格视图一个滚动控制器。
我正在向该控制器添加一个侦听器,但我认为我的逻辑或计算是错误的。
下面是我的代码:
ScrollController _scrollController = new ScrollController();
在 initstate 我正在给滚动控制器添加一个监听器
_scrollController.addListener(_scrollListener);
void _scrollListener() {
setState(() {
debugPrint(_scrollController.offset.toString());
debugPrint(count.toString());
debugPrint(((_scrollController.offset / count).round()).toString());
index = (_scrollController.offset / count).round();
print(index);
});
}
计数是我列表中的总项目,即 67。
当我向下滚动时,它给出了错误的输出。
请告诉我哪里出错了。
我的逻辑哪里出错了?
下面是我的网格视图代码:
DragSelectGridView(
shrinkWrap: true,
gridDelegate: SliverGridDelegateWithFixedCrossAxisCount(
childAspectRatio: (itemWidth / itemHeight),
crossAxisCount: 2,
),
physics: ClampingScrollPhysics(),
gridController: gridController,
scrollController: _scrollController,
itemCount: items.length,
itemBuilder: (context, index, selected) {
return ProductCard(
data: items[index],
isSelected: selected,
);
},
),
提前致谢!!!