From a0afe4d0911b6f843dd7783db979e2d8dbebfe0b Mon Sep 17 00:00:00 2001 From: xsahil03x Date: Tue, 24 Nov 2020 15:06:18 +0530 Subject: [PATCH] [UserListView] Replace ListView.custom, GridView.custom with separated,builder respectively, --- lib/src/user_list_view.dart | 51 ++++++++++++------------------------- 1 file changed, 16 insertions(+), 35 deletions(-) diff --git a/lib/src/user_list_view.dart b/lib/src/user_list_view.dart index 63285d8b..046ad9c7 100644 --- a/lib/src/user_list_view.dart +++ b/lib/src/user_list_view.dart @@ -328,56 +328,37 @@ class _UserListViewState extends State } if (_isListView) { - return ListView.custom( + return ListView.separated( physics: AlwaysScrollableScrollPhysics(), controller: _scrollController, - childrenDelegate: SliverChildBuilderDelegate( - (context, i) { - return _listItemBuilder(context, i, items); - }, - childCount: (items.length * 2) + 1, - findChildIndexCallback: (key) { - final ValueKey valueKey = key; - final index = - items.indexWhere((item) => item.key == valueKey.value); - return index != -1 ? (index * 2) : null; - }, - ), + itemCount: items.isNotEmpty ? items.length + 1 : items.length, + separatorBuilder: (_, index) { + if (widget.separatorBuilder != null) { + return widget.separatorBuilder(context, index); + } + return _separatorBuilder(context, index); + }, + itemBuilder: (context, index) { + return _listItemBuilder(context, index, items); + }, ); } - return GridView.custom( + return GridView.builder( gridDelegate: SliverGridDelegateWithFixedCrossAxisCount( crossAxisCount: widget.crossAxisCount, ), + itemCount: items.isNotEmpty ? items.length + 1 : items.length, physics: AlwaysScrollableScrollPhysics(), controller: _scrollController, - childrenDelegate: SliverChildBuilderDelegate( - (context, i) { - return _gridItemBuilder(context, i, items); - }, - childCount: items.length, - findChildIndexCallback: (key) { - final ValueKey valueKey = key; - final index = - items.indexWhere((item) => item.key == valueKey.value); - return index != -1 ? index : null; - }, - ), + itemBuilder: (context, index) { + return _gridItemBuilder(context, index, items); + }, ); }, ); } Widget _listItemBuilder(BuildContext context, int i, List items) { - if (i % 2 != 0) { - if (widget.separatorBuilder != null) { - return widget.separatorBuilder(context, i); - } - return _separatorBuilder(context, i); - } - - i = i ~/ 2; - final usersProvider = UsersBloc.of(context); if (i < items.length) { final item = items[i];