Я новичок во Flutter. Я работаю над приложением, которому необходимо сохранять позицию прокрутки в ListView, когда пользователи переходят к ListView и из него. Я пытаюсь использовать ScrollablePositionedList для выполнения sh этого. Я последовал простому примеру, предоставленному Google, и получаю сообщение об ошибке при вызове jumpTo
на моем ItemScrollController
.
My ListView построен из загруженного JSON, поэтому я использую FutureBuilder для первоначального построения и кэшировать модели элементов представления списка.
Вот отрывок из моего кода:
var listener = ItemPositionsListener.create();
var scroller = ItemScrollController();
ScrollablePositionedList _listView(
AsyncSnapshot snapshot, BuildContext context) {
var list = ScrollablePositionedList.builder(
itemCount: snapshot.data.length,
itemBuilder: (context, index) {
return Padding(
padding: const EdgeInsets.all(8.0),
child: Text(snapshot.data[index].gaugeName),
);
},
itemPositionsListener: listener,
itemScrollController: scroller,
);
scroller.jumpTo(index: 100); // error here
return list;
}
@override
Widget build(BuildContext context) {
_getFavorites();
return Scaffold(
appBar: AppBar(
title: Text(kAllStates[widget.stateAbbreviation]),
),
body: FutureBuilder(
future: _getGaugesForState(),
builder: (BuildContext context, AsyncSnapshot snapshot) {
if (snapshot.connectionState == ConnectionState.done) {
return _listView(snapshot, context);
} else {
return Align(child: CircularProgressIndicator());
}
},
),
endDrawer: RFDrawer(),
);
}
}
Когда вызывается scroller.jumpTo(index: 100);
, я получаю следующую ошибку:
NoSuchMethodError: The method '_jumpTo' was called on null.
Receiver: null
введите описание изображения здесь
Есть ли у кого-нибудь подсказки относительно того, что могло вызвать эту ошибку, или что я здесь делаю не так?
Спасибо!