如何去除Flutter中的ScrollGlow

我们创建Flutter项目的时候,Flutter会自动给ListView、GridView等一些其他的滑动的小部件,添加了一个glowing效果。

那么我们怎么去除这个效果呢?

image.png

这个glow是从GlowingOverscrollIndicator添加的ScrollBehavior。

为了去除这个效果,需要自定义一个ScrollBehhavior。

import 'package:flutter/cupertino.dart';

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

如果去除整个项目的glow,在MaterialApp下面builder里面添加

MaterialApp(
    builder: (context. child) => ScrollConfiguration(behavior: NoScrollFlowBehavior(), child: child!),
    home: MyHomePage()
);

如果只去除某个ListView的glow

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

你也可以包裹SingleChildScrollView或者ListView

NotificationListener<OverscrollIndicatorNotification>(
    onNotification: (OverscrollIndicatorNotification overscroll) {
        overscroll.disallowGlow();
        return;
    },
    child: SingleChildScrollView();
)

另外,如果想要弹动效果的话,直接将ListView里面physics属性设置为BouncingScrollPhysics即可

© 版权声明
THE END
喜欢就支持一下吧
点赞9 分享
评论 抢沙发
头像
欢迎您留下宝贵的见解!
提交
头像

昵称

取消
昵称表情代码图片

    暂无评论内容