+-
如何删除Flutter PageView中甩动时的弹簧动画?

我用的是 网页浏览 来滚动浏览日程表应用中的多个月份。

这里是(简化的、相当标准的)构建方法。

@override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: Text("Roster"),
        body: PageView.builder(
          itemBuilder: (context, index) {
          return RosterMonth(
            month: _monthList[index].monthOfYear,
            year: _monthList[index].year,
          );
        },
      ),
    );
  }

现在 ScrollPhysicsPageView 使页面在左右甩动时 "跳动"(视频),我想摆脱这种效果。

我试着创建一个自定义版本的 PageScrollPhysics但成功率有限。覆盖 minFlingVelocity 返回一个高值 (double.maxFinite 例如)确实可以去除效果,但让人感觉很不自然(因为我想它不再是一个真正的调情了)。正确的方法是什么,才能去除春秋效果(并得到像在Android中使用ViewPager一样的效果)?

1
投票

看来,官方消除反弹效果的方法是使用 夹持卷轴物理学 作为物理参数。我真的不知道这是否解决了你的问题,你的感觉是不自然的。但对我来说,这正是我想要的。

PageView(
      physics: ClampingScrollPhysics(),
      controller: _controller,
      children: [
        Container(color: Colors.red),
        Container(color: Colors.blue),
        Container(color: Colors.green),
      ],
    )