dart - 如何去除滚动发光?

默认情况下,flutter 在 ListView/GridView/... 上添加发光效果以在安卓手机上滚动

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

我能做什么?

最佳答案

发光效果来自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(
    ...
  ),
)

如果你想改变效果,这也是有效的。就像在到达 ScrollView 的边界时添加淡入淡出一样。

https://stackoverflow.com/questions/51119795/

相关文章:

dart - Flutter 切换到 Tab 重新加载小部件并运行 FutureBuilder

flutter - 如何更改文本字段 flutter 中的值?

flutter - 创建一个带有圆形边框的按钮

dart - 使用不包含 MediaQuery 的上下文调用的 Flutter 错误 : Media

android-studio - Dart 的 SDK 在/flutter 文件夹中的什么位置?

flutter - 弹出时强制 Flutter 导航器重新加载状态

flutter - 如何将 BottomNavigationBar 与 Navigator 一起使用

flutter - 如何确定屏幕高度和宽度

Flutter - 如何将用户数据传递给所有 View

dart - 如何在另一个 flutter 应用程序中使用本地 flutter 包?