Как изменить область VisibilityDetector в Flutter? - PullRequest
0 голосов
/ 23 апреля 2020

Я пытался использовать виджет VisibilityDetector из виджетов флаттера, но он обнаруживает только элемент списка в конце экрана телефона (как только видимость элемента 9: обнаружена видимость 9). В результате отладки выводится так:

=> 90% элемента: 9 видно

скриншот приложения

мне нужно было показать% видимости всех элементов списка, которые видны на экране (т. е.% всех элементов списка от элемента: 1 до элемента: 9, если мы go согласно скриншоту приложения).

  • Ниже приведен фрагмент кода: -

ListView.builder(
          controller: _scrollController,
          itemExtent: 250,
          itemCount: myList.length + 1,
          itemBuilder: (context, i) {
            if (i == myList.length) {
              return CupertinoActivityIndicator();
            }
            String n = myList[i];
            return Column(
                children: <Widget>[
                  Divider(),
                  Container(
                    color: Colors.blue[100],
                    child: VisibilityDetector(
                      key: Key("unique key"),
                      onVisibilityChanged: (VisibilityInfo info) {
                        var visiblePercentage = info.visibleFraction * 100;
                        debugPrint("=> ${visiblePercentage.toInt()}% of $n is visible ");
                      },
                      child: ListTile(
                        title: Text(myList[i]),
                      ),
                    ),
                  ),
                  Divider(),
                ],
              ),
            );
          },
    );
  }

Поэтому, пожалуйста, кто-нибудь может мне помочь с этим. Спасибо:)

...