[UserListView] Replace ListView.custom, GridView.custom with separated,builder respectively,
This commit is contained in:
+16
-35
@@ -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];
|
||||||
|
|||||||
Reference in New Issue
Block a user