0

我正在使用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 相同的效果)?

4

1 回答 1

1

看来官方去除反弹效果的方法是使用ClampingScrollPhysics作为物理参数。我真的不知道这是否能解决你的问题,即投掷感觉不自然。但对我来说,这正是我想要的。

PageView(
      physics: ClampingScrollPhysics(),
      controller: _controller,
      children: [
        Container(color: Colors.red),
        Container(color: Colors.blue),
        Container(color: Colors.green),
      ],
    )
于 2020-05-24T20:39:34.603 回答