Я пытался использовать виджет 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(),
],
),
);
},
);
}
Поэтому, пожалуйста, кто-нибудь может мне помочь с этим. Спасибо:)