Мне нужна ваша помощь.
Мой первый результат запроса отображается с помощью виджета ListView. И я вызываю функцию fetchMore (из graphql_flutter) для получения дополнительных результатов. Но вместо того, чтобы просто добавлять новый результат внизу ListView, он кажется refre sh весь виджет. (Он показывает виджет загрузки)
Я очень новичок во Flutter.
Вот конструктор в виджете Query.
builder: (QueryResult result,
{VoidCallback refetch, FetchMore fetchMore}) {
if (result.hasException) {
return Text(result.exception.toString());
}
if (result.loading) {
return Center(
child: CircularProgressIndicator(),
);
}
List items = result.data['playlistItems']['items'];
String token = result.data['playlistItems']['nextPageToken'];
token = token ?? "";
FetchMoreOptions opts = FetchMoreOptions(
variables: {'nextPageToken': token},
updateQuery: (previousResultData, fetchMoreResultData) {
final List<dynamic> newItems = [
...previousResultData['playlistItems']['items']
as List<dynamic>,
...fetchMoreResultData['playlistItems']['items']
as List<dynamic>
];
fetchMoreResultData['playlistItems']['items'] = newItems;
return fetchMoreResultData;
});
return Stack(
children: <Widget>[
VideoList(itemCount: items.length, items: items),
Align(
alignment: Alignment.bottomRight,
child: Padding(
padding: EdgeInsets.symmetric(
vertical: 10.0, horizontal: 10.0),
child: FloatingActionButton.extended(
onPressed: () {
fetchMore(opts);
},
label: Text("Load More"),
icon: Icon(Icons.more),
),
),
),
],
);
Как я могу просто добавить больше результатов в конец списка вместо обновления всего списка?
Что мне не хватает?