默认情况下,抖动会在iOS上的overscroll
上添加ListView/GridView/...
效果
我想完全删除此效果或在一个特定的滚动条上删除该效果。
我该怎么办?
答案 0 :(得分:3)
如果只想消除iOS上的过度滚动行为,则不需要做这些花哨的事情。只需使用:
[1, 2, 3, 4, 5]
答案 1 :(得分:1)
我找到了这个答案(https://stackoverflow.com/a/51119796/5869913),只是添加了有关删除过度滚动效果的信息。
过度滚动效果来自BouncingScrollPhysics
添加的ScrollBehavior
要消除此影响,您需要指定一个自定义ScrollBehavior
并覆盖getScrollPhysics
方法。为此,只需将应用程序的任何给定部分包装到具有所需ScrollConfiguration
的{{1}}中即可。
以下ScrollBehavior将完全消除过度滚动效果:
ScrollBehavior
您还可以使用方法buildViewportChrome覆盖来消除发光效果,如下所示:
class MyBehavior extends ScrollBehavior {
@override
ScrollPhysics getScrollPhysics(BuildContext context) => ClampingScrollPhysics();
}
要删除整个应用程序的过度滚动,可以将其添加到MaterialApp下:
@override
Widget buildViewportChrome(BuildContext context, Widget child, AxisDirection axisDirection) => child;
要在特定的ListView上将其删除,请仅包装所需的ListView:
MaterialApp(
builder: (context, child) {
return ScrollConfiguration(
behavior: MyBehavior(),
child: child,
);
},
home: MyHomePage(),
);
或仅在ListView中设置物理:ScrollConfiguration(
behavior: MyBehavior(),
child: ListView(
...
),
)
答案 2 :(得分:0)
将shrinkWrap: true 添加到BouncingScrollPhysics(),将移除顶部弹跳。