Как убрать оверролл на ios? - PullRequest
       71

Как убрать оверролл на ios?

0 голосов
/ 31 октября 2019

По умолчанию flutter добавляет overscroll эффект на ListView/GridView/... на ios

. Я хотел бы удалить этот эффект целиком или на одной конкретной прокручиваемой строке.

Что я могу сделать?

1 Ответ

0 голосов
/ 31 октября 2019

Я нашел этот ответ (https://stackoverflow.com/a/51119796/5869913) и только что добавил информацию об удалении эффекта прокрутки.

Эффект прокрутки прибывает из BouncingScrollPhysics, добавленного ScrollBehavior

Для удаленияДля этого эффекта вам нужно указать собственный ScrollBehavior и переопределить getScrollPhysics метод. Для этого просто оберните любую часть вашего приложения в ScrollConfiguration с желаемым ScrollBehavior.

. ScrollBehavior полностью удалит эффект прокрутки:

class MyBehavior extends ScrollBehavior {
  @override
  ScrollPhysics getScrollPhysics(BuildContext context) => ClampingScrollPhysics();
}

Вы также можете удалить эффект свечения с помощью переопределения метода buildViewportChrome следующим образом:

@override
Widget buildViewportChrome(BuildContext context, Widget child, AxisDirection axisDirection) => child;

Чтобы удалить прокрутку во всем приложении, выможете добавить его прямо в MaterialApp:

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

Чтобы удалить его из определенного ListView, вместо этого оберните только нужный ListView:

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

или просто задайте физику: ClampingScrollPhysics() вListView

...