默认情况下,Flutter 会在iOS的ListView/GridView/...
上添加overscroll
的效果
我想完全消除这个效果,或者在一个特定的滚动页面上.
我能做些什么呢?
默认情况下,Flutter 会在iOS的ListView/GridView/...
上添加overscroll
的效果
我想完全消除这个效果,或者在一个特定的滚动页面上.
我能做些什么呢?
我找到了这个答案(https://stackoverflow.com/a/51119796/5869913),并添加了关于删除overscroll效应的信息.
超卷效果来自BouncingScrollPhysics
加ScrollBehavior
要删除此效果,需要指定一个自定义的ScrollBehavior
和override getScrollPhysics
方法.为此,只需将应用程序的任何给定部分包装成一个ScrollConfiguration
,其中包含所需的ScrollBehavior
.
以下ScrollBehavior将完全消除上卷效果:
class MyBehavior extends ScrollBehavior {
@override
ScrollPhysics getScrollPhysics(BuildContext context) => ClampingScrollPhysics();
}
您还可以通过覆盖buildViewportChrome方法来移除辉光效果,如下所示:
@override
Widget buildViewportChrome(BuildContext context, Widget child, AxisDirection axisDirection) => child;
要删除整个应用程序上的上卷,您可以将其添加到MaterialApp下面:
MaterialApp(
builder: (context, child) {
return ScrollConfiguration(
behavior: MyBehavior(),
child: child,
);
},
home: MyHomePage(),
);
要在特定的ListView上删除它,请仅包装所需的ListView:
ScrollConfiguration(
behavior: MyBehavior(),
child: ListView(
...
),
)
或者只是在ListView中设置物理:ClampingScrollPhysics()