乐趣区

flutter-去掉滚动组件拉到底时那个蓝色的波浪效果

这个蓝色波浪有时候确实没必要,我目前觉得他唯一存在于长列表整屏幕时挺好看的,但是各种小的模块(比如: 一般用 listview 做的导航列表或者 gridview 做的宫格布局的图表导航)就没啥必要了,要命的是长列表下嵌套这种小的 listview 组件时,不仅有局部丑陋的蓝色的波纹,还有严重的体验问题,手指划到局部 listview 时会触发局部 listview 的滚动,与外层大的滚动组件冲突,所以有时候用 wrap 这种流布局可能会更好。

那么,非要用 listview,毕竟 listview 构建这种列表数据时特别方便,怎么办?

  • 导入 io 包和基础的 material 的包
import 'dart:io';
import 'package:flutter/services.dart';
  • 用 ScrollConfiguration 包裹滑动子布局:
ScrollConfiguration(behavior: MyBehavior(),  // 自定义 behavior
    child: ListView()  // 你的滚动布局组件);
  • 自定义 behavior:
class MyBehavior  extends ScrollBehavior{
 @override
 Widget buildViewportChrome(BuildContext context, Widget child, AxisDirection axisDirection) {if(Platform.isAndroid||Platform.isFuchsia){return child;}else{return super.buildViewportChrome(context,child,axisDirection);
    }
 }
}

亲测好用,方法借鉴于:[这里](https://www.jianshu.com/p/b9e92c37f4ec)

退出移动版