1. ホーム
  2. dart

[解決済み] スクロールグローを消すには?

2022-10-25 02:40:01

質問

デフォルトでは、flutterは光り輝くエフェクトを ListView / GridView /... アンドロイド携帯のオーバースクロールへ

この効果を完全に、または特定のスクロールバーで除去したいです。 私は ScrollPhysics を変更して、バウンスとクランプの間を変更できることは知っています。しかし、これは実際にグロー効果を削除することはできません。

どうすればいいのでしょうか?

どのように解決するのですか?

グロー効果の出所は GlowingOverscrollIndicator によって追加されたものです。 ScrollBehavior

この効果を取り除くには、カスタムの ScrollBehavior . そのためには、アプリケーションの任意の部分を単に ScrollConfiguration で囲みます。 ScrollBehavior .

次のような ScrollBehavior は、グロー効果を完全に除去します。

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

アプリケーション全体のグローを消すには、直下にある MaterialApp :

MaterialApp(
  builder: (context, child) {
    return ScrollConfiguration(
      behavior: MyBehavior(),
      child: child,
    );
  },
  home: new MyHomePage(),
);

特定の場所で削除するには ListView のみをラップし、代わりに目的の ListView :

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


これは、次のような場合にも有効です。 を変更する を変更したい場合にも有効です。例えば、スクロールビューの境界線に到達したときにフェードを追加するような場合です。