[UserListView] Replace ListView.custom, GridView.custom with separated,builder respectively,

This commit is contained in:
xsahil03x
2020-11-24 15:06:18 +05:30
parent 7aac92e890
commit a0afe4d091
+16 -35
View File
@@ -328,56 +328,37 @@ class _UserListViewState extends State<UserListView>
} }
if (_isListView) { if (_isListView) {
return ListView.custom( return ListView.separated(
physics: AlwaysScrollableScrollPhysics(), physics: AlwaysScrollableScrollPhysics(),
controller: _scrollController, controller: _scrollController,
childrenDelegate: SliverChildBuilderDelegate( itemCount: items.isNotEmpty ? items.length + 1 : items.length,
(context, i) { separatorBuilder: (_, index) {
return _listItemBuilder(context, i, items); if (widget.separatorBuilder != null) {
}, return widget.separatorBuilder(context, index);
childCount: (items.length * 2) + 1, }
findChildIndexCallback: (key) { return _separatorBuilder(context, index);
final ValueKey<String> valueKey = key; },
final index = itemBuilder: (context, index) {
items.indexWhere((item) => item.key == valueKey.value); return _listItemBuilder(context, index, items);
return index != -1 ? (index * 2) : null; },
},
),
); );
} }
return GridView.custom( return GridView.builder(
gridDelegate: SliverGridDelegateWithFixedCrossAxisCount( gridDelegate: SliverGridDelegateWithFixedCrossAxisCount(
crossAxisCount: widget.crossAxisCount, crossAxisCount: widget.crossAxisCount,
), ),
itemCount: items.isNotEmpty ? items.length + 1 : items.length,
physics: AlwaysScrollableScrollPhysics(), physics: AlwaysScrollableScrollPhysics(),
controller: _scrollController, controller: _scrollController,
childrenDelegate: SliverChildBuilderDelegate( itemBuilder: (context, index) {
(context, i) { return _gridItemBuilder(context, index, items);
return _gridItemBuilder(context, i, items); },
},
childCount: items.length,
findChildIndexCallback: (key) {
final ValueKey<String> valueKey = key;
final index =
items.indexWhere((item) => item.key == valueKey.value);
return index != -1 ? index : null;
},
),
); );
}, },
); );
} }
Widget _listItemBuilder(BuildContext context, int i, List<ListItem> items) { Widget _listItemBuilder(BuildContext context, int i, List<ListItem> 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); final usersProvider = UsersBloc.of(context);
if (i < items.length) { if (i < items.length) {
final item = items[i]; final item = items[i];