【问题标题】:Flutter horizontal scroll one item at one颤动水平滚动一项一项
【发布时间】:2020-06-18 19:26:58
【问题描述】:

免责声明:- Flutter 社区的新功能

在原生 android 代码中,我使用手势检测器完成了类似的工作,但我想知道如何在颤振中也实现相同的效果。就像我在水平列表中有卡片列表,当用户滚动列表时,一次只能滚动一项。任何实现这一目标的想法或建议将不胜感激。

【问题讨论】:

  • 您可以使用 PageControl 来实现。

标签: flutter dart horizontal-scrolling


【解决方案1】:

我建议你查看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),
);

【讨论】:

    【解决方案2】:

    您可能想查看flutter_swiper 插件。

    【讨论】:

      【解决方案3】:

      我通过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,
                  );
                },
              ),
      
      

      【讨论】:

        【解决方案4】:

        您可以使用带有属性的简单 ListView Widget:physics: PageScrollPhysics()

            ListView(
                physics: PageScrollPhysics(),   
                children: [
                //Your list elements here
                ],   
            )
        

        【讨论】:

          猜你喜欢
          • 2016-01-22
          • 2018-02-10
          • 1970-01-01
          • 2021-09-12
          • 2022-01-16
          • 1970-01-01
          • 1970-01-01
          • 2021-11-13
          • 1970-01-01
          相关资源
          最近更新 更多