免责声明:-flutter社区中的新手
在本地android代码中,我已经使用手势检测器完成了类似的工作,但是我想知道如何在颤动中也能达到相同的效果。就像我在水平列表中有一张纸牌列表,当用户滚动列表时,一次只能滚动一项。任何实现此目的的想法或建议将不胜感激。
答案 0 :(得分:4)
我建议您研究PageView。
通过此操作,您可以将卡片列表转换为PageView的子代,一次可以一页刷卡。看起来像这样:
final controller = PageController(
initialPage: 0,
);
final pageView = PageView(
controller: controller,
scrollDirection: Axis.horizontal,
children: <Widget>[
// your card list here
],
onPageChanged: (index) =>
setState(() => selectedPageIndex = index),
);
答案 1 :(得分:0)
您可能想看看flutter_swiper插件。
答案 2 :(得分:0)
我使用 scroll_snap_list 包实现了这一点。您需要设置一个固定的项目大小,并根据该固定大小进行滚动。
ScrollSnapList(
selectedItemAnchor: SelectedItemAnchor.START,
itemSize: 163,
onItemFocus: (index) {},
duration: 300,
scrollDirection: Axis.horizontal,
itemCount: 10,
itemBuilder: (BuildContext context, int index) {
return Container(
width: 155,
height:155,
);
},
),