web-dev-qa-db-ja.com

iOSでのオーバースクロールを削除する方法

デフォルトでは、FlutterはiOSでListView/GridView/...overscroll効果を追加します。

この効果を完全にまたは1つの特定のスクロール可能に削除したいと思います。

私に何ができる ?

5
Sergey Frolov

私はこの回答を見つけました( 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の場合

5
Sergey Frolov