デフォルトでは、FlutterはiOSでListView/GridView/...
にoverscroll
効果を追加します。
この効果を完全にまたは1つの特定のスクロール可能に削除したいと思います。
私に何ができる ?
私はこの回答を見つけました( https://stackoverflow.com/a/51119796/586991 )そして、オーバクローロール効果の削除に関する情報を追加しました。
オーバークローロス効果はBouncingScrollPhysics
からScrollBehavior
の_から来ています
このエフェクトを削除するには、カスタムScrollBehavior
を指定してgetScrollPhysics
メソッドを指定する必要があります。そのために、アプリケーションの任意の部分をScrollConfiguration
の任意の部分を目的のScrollBehavior
に包みます。
次のスクロールベハラは、オーバースクロール効果を完全に削除します。
_class MyBehavior extends ScrollBehavior {
@override
ScrollPhysics getScrollPhysics(BuildContext context) => ClampingScrollPhysics();
}
_
このようにMethod BuildViewPortChromeのオーバーライドでグロー効果を削除することもできます。
_@override
Widget buildViewportChrome(BuildContext context, Widget child, AxisDirection axisDirection) => child;
_
アプリケーション全体のオーバスクロールを削除するには、[MATAITIONAPP]の下に追加できます。
_MaterialApp(
builder: (context, child) {
return ScrollConfiguration(
behavior: MyBehavior(),
child: child,
);
},
home: MyHomePage(),
);
_
特定のListViewで削除するには、代わりに目的のListViewのみを折り返します。
_ScrollConfiguration(
behavior: MyBehavior(),
child: ListView(
...
),
)
_
またはただ物理学を設定する:ClampingScrollPhysics()
ListViewの場合