默认情况下,flutter在ios上为overscroll
添加了ListView/GridView/...
效果,在android上为glow
添加了效果
我想完全删除此效果或在一个特定的滚动条上删除。
我该怎么办?
过度滚动效果来自BouncingScrollPhysics
添加的ScrollBehavior
要删除此效果,您需要指定一个自定义ScrollBehavior
并覆盖getScrollPhysics
方法。为此,只需将应用程序的任何给定部分包装到具有所需ScrollConfiguration
的ScrollBehavior
中即可。
以下ScrollBehavior将完全消除过度滚动效果:
class MyBehavior extends ScrollBehavior {
@override
ScrollPhysics getScrollPhysics(BuildContext context) => ClampingScrollPhysics();
}
要删除整个应用程序的过度滚动,可以在MaterialApp下添加它:
MaterialApp(
builder: (context, child) {
return ScrollConfiguration(
behavior: MyBehavior(),
child: child,
);
},
home: MyHomePage(),
);
要在特定的ListView上将其删除,而只包装所需的ListView:
ScrollConfiguration(
behavior: MyBehavior(),
child: ListView(
...
),
)
您还可以使用方法buildViewportChrome的覆盖来消除发光效果,如下所示:
@override
Widget buildViewportChrome(BuildContext context, Widget child, AxisDirection axisDirection) => child;