Как создать индикатор прокрутки

Я пытаюсь отобразить индикатор тени / прокрутки в нижней части CustomScrollView чтобы указать, что пользователь может прокрутить вниз. Индикатор прокрутки должен быть виден только тогда, когда вы действительно можете прокрутить вниз.

  • В моей первой попытке создать это я назначил ScrollControllerк CustomScrollView так что я могу получить максимальный экстент прокрутки и текущую позицию прокрутки. К сожалению, это не сработало, потому что ScrollController привязывается только к CustomScrollViewво время первой сборки, поэтому я не могу использовать его во время первой сборки, чтобы получить необходимую мне информацию.

  • Для второй попытки я более внимательно изучил реализациюSliver, но без везения. Я пытался получить вдохновение от SliverAppBar код (как предложено здесь), но обнаружил, что это было довольно трудно понять, и что не так много информации о Sliverпока нет.

Мой вопрос: как я могу реализовать это (без пользовательских лент, если это возможно)? Если вам нужны щепки, я бы хотел получить дополнительную информацию и, возможно, ссылки на ресурсы по этой теме.

1 ответ

Если вам нужно определить, когда пользователь прокрутил вниз до нижней части ListView, вы можете установить прослушиватель ScrollController, если позиция прокрутки находится на краю.

      _scrollController.addListener(() {
  if (_scrollController.position.atEdge) {
    if (_scrollController.position.pixels == 0) {
      debugPrint('Scroll position at top');
    } else {
      debugPrint('Scroll position at bottom');
      // Load more list items
    }
  }
});

Помните, что ScrollController необходимо настроить в ListView.

      ListView.builder(
  controller: _scrollController,
  ...
)
Другие вопросы по тегам