Обнаружить элемент, выходящий из представления в CustomScrollView - PullRequest
1 голос
/ 14 июля 2020

введите описание изображения здесь В настоящее время я показываю CustomScrollView внутри bottomSheet.

CustomScrollView(
      controller: scrollController,
      slivers: [
        SliverPersistentHeader(
          pinned: true,
          delegate: MonthViewHeader(widget.weekDays),
        ),
        SliverList(
          delegate: SliverChildBuilderDelegate((context, index) {
            return MonthView(
                index == 0 ? widget._today : Jalali(widget._today.year, widget._today.month, 1).addMonths(index),
                index != 0,
                selectedDate,
                (DateTime date) => {
                      setSheetState(() {
                        selectedDate = date;
                        widget.onDateChange(date);
                      })
                    });
          }),
        )
      ],
    )

SliverPersistentHeader остается вверху списка при прокрутке, а SliverList прокручивается под ним. Я хочу проверить, какой индекс элемента вводится / закрывается при прокрутке. Я хочу знать это, чтобы изменить текст SliverPersistentHeader. Один из подходов - вычислить scrollOffset и присвоить каждому элементу stati c height. Но это не очень оптимально, поскольку элемент 0 из SilverList может иметь меньшую высоту, поэтому я могу задать ему фиксированную высоту. Есть ли способ обнаружить элемент, входящий / выходящий из вида внутри SilverList?

1 Ответ

0 голосов
/ 14 июля 2020

Я бы порекомендовал проверить этот плагин:

flutter_sticky_header

Кажется, это именно то, что вы ищете.

...