如何移除 ios 上的过度滚动?
How to remove overscroll on ios?
默认情况下,flutter 在 ios
上添加 overscroll
效果 ListView/GridView/...
我想完全或在一个特定的滚动条上删除此效果。
我能做什么?
我找到了这个答案 (),并且刚刚添加了有关删除滚动效果的信息。
滚动效果来自BouncingScrollPhysics
由ScrollBehavior
添加
要删除此效果,您需要指定自定义 ScrollBehavior
并覆盖 getScrollPhysics
方法。为此,只需将应用程序的任何给定部分包装到具有所需 ScrollBehavior
.
的 ScrollConfiguration
中
以下 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()
如果您只想删除 iOS 上的过度滚动行为,则不需要做那些花哨的事情。只需使用:
ListView(
physics: ClampingScrollPhysics(),
)
将 shrinkWrap: true 添加到 BouncingScrollPhysics(),将移除顶部弹跳。
默认情况下,flutter 在 ios
上添加overscroll
效果 ListView/GridView/...
我想完全或在一个特定的滚动条上删除此效果。
我能做什么?
我找到了这个答案 (
滚动效果来自BouncingScrollPhysics
由ScrollBehavior
要删除此效果,您需要指定自定义 ScrollBehavior
并覆盖 getScrollPhysics
方法。为此,只需将应用程序的任何给定部分包装到具有所需 ScrollBehavior
.
ScrollConfiguration
中
以下 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()
如果您只想删除 iOS 上的过度滚动行为,则不需要做那些花哨的事情。只需使用:
ListView(
physics: ClampingScrollPhysics(),
)
将 shrinkWrap: true 添加到 BouncingScrollPhysics(),将移除顶部弹跳。