首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何去除ios上的overscroll?

如何去除ios上的overscroll?
EN

Stack Overflow用户
提问于 2019-10-31 22:04:19
回答 3查看 5.7K关注 0票数 11

默认情况下,flutter会在ios上的ListView/GridView/...上添加overscroll效果

我想要完全消除这种影响或在一个特定的滚动。

我能做些什么?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2019-10-31 22:04:19

我找到了这个答案(https://stackoverflow.com/a/51119796/5869913),并添加了有关删除overscroll效果的信息。

overscroll效果来自于ScrollBehavior添加的BouncingScrollPhysics

要消除此效果,您需要指定自定义ScrollBehavior并覆盖getScrollPhysics方法。为此,只需使用所需的ScrollBehavior将应用程序的任何给定部分包装到ScrollConfiguration中。

下面的ScrollBehavior将完全消除overscroll效果:

代码语言:javascript
复制
class MyBehavior extends ScrollBehavior {
  @override
  ScrollPhysics getScrollPhysics(BuildContext context) => ClampingScrollPhysics();
}

还可以通过覆盖方法buildViewportChrome来移除光晕效果,如下所示:

代码语言:javascript
复制
@override
Widget buildViewportChrome(BuildContext context, Widget child, AxisDirection axisDirection) => child;

要删除整个应用程序上的上卷,您可以将其添加到MaterialApp下面:

代码语言:javascript
复制
MaterialApp(
  builder: (context, child) {
    return ScrollConfiguration(
      behavior: MyBehavior(),
      child: child,
    );
  },
  home: MyHomePage(),
);

要在特定ListView上删除它,请仅包装所需的ListView:

代码语言:javascript
复制
ScrollConfiguration(
  behavior: MyBehavior(),
  child: ListView(
    ...
  ),
)

或者只是设置物理: ListView中的ClampingScrollPhysics()

票数 23
EN

Stack Overflow用户

发布于 2020-06-20 23:47:40

如果你只想移除iOS上的滚动过屏行为,你不需要做这些花哨的事情。简单地,使用:

代码语言:javascript
复制
ListView(
  physics: ClampingScrollPhysics(),
)
票数 19
EN

Stack Overflow用户

发布于 2021-04-23 17:45:42

向BouncingScrollPhysics()添加shrinkWrap: true将删除顶部反弹。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/58645048

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档