首页 > 解决方案 > 如何去除滚动发光?

问题描述

默认情况下,flutter 会在ListView/ GridView/... 上添加发光效果,以在 android 手机上进行过度滚动

我想完全或在一个特定的可滚动项上删除此效果。我知道我可以ScrollPhysics在 Bounce/Clamp 之间切换。但这实际上并没有消除发光效果。

我能做些什么 ?

在此处输入图像描述

标签: dartflutter

解决方案


发光效果来自GlowingOverscrollIndicator添加ScrollBehavior

要消除这种影响,您需要指定一个自定义ScrollBehavior. 为此,只需将应用程序的任何给定部分包装到ScrollConfiguration带有所需ScrollBehavior.

以下ScrollBehavior将完全消除发光效果:

class MyBehavior extends ScrollBehavior {
  @override
  Widget buildOverscrollIndicator(
      BuildContext context, Widget child, ScrollableDetails details) {
    return child;
  }
}

要移除整个应用程序的发光,您可以在下面添加它MaterialApp

MaterialApp(
  builder: (context, child) {
    return ScrollConfiguration(
      behavior: MyBehavior(),
      child: child,
    );
  },
  home: new MyHomePage(),
);

要在特定的 上删除它ListView,而是只包装所需的ListView

ScrollConfiguration(
  behavior: MyBehavior(),
  child: ListView(
    ...
  ),
)

如果您想更改效果,这也是有效的。就像在到达滚动视图的边界时添加淡入淡出一样。


推荐阅读