У меня есть ListView и календарь над ним. Я планирую расходовать Календарь на основе состояния прокрутки ListView. Мне удалось справиться со всем этим, кроме одной проблемы с Android.
ScrollController _scrollController;
@override
void initState() {
super.initState();
_scrollController = ScrollController();
_scrollController.addListener(_handleScroll);
}
@override
void dispose() {
_scrollController.removeListener(_handleScroll);
_scrollController.dispose();
super.dispose();
}
void _handleScroll() {
// Handle Scrolling here.
}
@override
Widget build(BuildContext context) {
return SafeArea(
child: child: Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: <Widget>[
Calendar(),
Expanded(
child: ListView(
controller: _scrollController,
padding: EdgeInsets.only(bottom: 10),
children: <Widget>[
ListViewItem(),
ListViewItem(),
...
],
),
),
],
),
);
}
Изображение ниже иллюстрирует проблему!
Как видите, вытягивание ListView, когда пользователь еще не прокрутил вниз, похоже, вообще не запускает _handleScroll. Думаю это по дизайну на Android. Мы будем очень признательны за любые решения или обходные пути.