总体是重写ScrollBehavior,然后用ScrollConfiguration控件,包裹ListView。ScrollConfiguration主要用于控制子控件的滚动行为。
class EUMNoScrollBehavior extends ScrollBehavior {
@override
Widget buildViewportChrome(
BuildContext context, Widget child, AxisDirection axisDirection) {
switch (getPlatform(context)) {
case TargetPlatform.iOS:
return child;
case TargetPlatform.android:
case TargetPlatform.fuchsia:
return GlowingOverscrollIndicator(
child: child,
// 不显示头部水波纹
showLeading: false,
// 不显示尾部水波纹
showTrailing: false,
axisDirection: axisDirection,
color: Theme.of(context).accentColor,
);
case TargetPlatform.linux:
break;
case TargetPlatform.macOS:
break;
case TargetPlatform.windows:
break;
}
return child;
}
}
使用方法
ScrollConfiguration(
behavior: EUMNoScrollBehavior(),
child: ListView.builder(
itemCount: list.length,
itemBuilder: (context, index) {
return ItemView(index);
}),
)