Как убрать прокрутку на ios?

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

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

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


person Sergey Frolov    schedule 31.10.2019    source источник
comment
Отвечает ли это на ваш вопрос? Как удалить свечение прокрутки?   -  person Murat Aslan    schedule 01.11.2019
comment
Нет, этот ответ не объясняет, как удалить эффект перепрокрутки на ios   -  person Sergey Frolov    schedule 01.11.2019


Ответы (3)


Я нашел этот ответ (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

person Sergey Frolov    schedule 31.10.2019
comment
Не могли бы вы просто установить физику: ClampingScrollPhysics () в ListView? - person Pablo Barrera; 31.10.2019
comment
не могли бы вы добавить полный пример или код Git? - person MD Khali; 23.01.2020

Вам не нужно делать эти причудливые вещи, если вы хотите убрать чрезмерную прокрутку только на iOS. Просто используйте:

ListView(
  physics: ClampingScrollPhysics(),
)
person iDecode    schedule 20.06.2020

Добавление shrinkWrap: true в BouncingScrollPhysics () удалит отскок сверху.

person Shop Plus    schedule 23.04.2021