我正在使用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,
);
},
),
);
}
现在,ScrollPhysics
中的PageView
使页面左右摆动(video)时页面会“反弹”,我想摆脱这种影响。
我曾尝试创建PageScrollPhysics
的自定义版本,但仅获得了有限的成功。覆盖minFlingVelocity
以返回高值(例如double.maxFinite
)确实可以消除影响,但会使猛击的感觉非常不自然(因为我猜它不再是实际的猛击)。消除弹簧效果(并获得与Android中的ViewPager相同的效果)的正确方法是什么?
答案 0 :(得分:1)
看来,消除反弹效果的官方方法是使用 ClampingScrollPhysics 作为物理参数。我真的不知道这是否可以解决您的问题,让您感觉不自然。但是对我来说,这正是我想要的。
PageView(
physics: ClampingScrollPhysics(),
controller: _controller,
children: [
Container(color: Colors.red),
Container(color: Colors.blue),
Container(color: Colors.green),
],
)