#flutter
Вопрос:
Я получаю эту ошибку, когда пытаюсь вложить представление списка в представление списка В сводке, я получаю список строк, затем просматриваю их в представлении списка, каждый элемент возвращает другое представление горизонтальной сетки. Я ценю помощь, чтобы узнать, что я сделал не так
Flexible(
child: ListView.separated(
shrinkWrap: true,
physics: NeverScrollableScrollPhysics(),
itemCount: widget.sellerSubCategories.length,
separatorBuilder: (context,index){
return Container(height: 10,);
},
itemBuilder: (context, index){
return HorizontalRequests(key: UniqueKey(), sellerSubCategory: widget.sellerSubCategories[index], categoryTab: widget.category);
}
),
),
Я думал, что добавление ключа к виджету изменит это, но этого не произошло.
class HorizontalRequests extends StatefulWidget {
...some other code here...
return StreamBuilder<List<BuyerRequest>>(
stream: _streamController.stream,
builder: (context,snapshot){
if(snapshot.hasData){
return SellerRequestHorizontalList(requests: snapshot.data,
subCategory: widget.sellerSubCategory,
controller: _scrollController,
loadMore: _loadingMore,
);
}else{
//use a shimmer
return HorizontalRequestShimmer();
}
}
);
Виджет списка
class SellerRequestHorizontalList extends StatelessWidget {
final List<BuyerRequest> requests;
final ProductSubCategory subCategory;
final ScrollController controller;
final bool loadMore;
const SellerRequestHorizontalList({ Key key,this.requests,this.subCategory,this.controller,this.loadMore }) : super(key: key);
@override
Widget build(BuildContext context) {
return Container(
decoration: BoxDecoration(
color: Colors.white,
borderRadius: BorderRadius.circular(5)
),
padding: EdgeInsets.symmetric(horizontal: 10),
height: requests.length>0?250:0,
child: Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: [
Expanded(
child: GridView.builder(
controller: controller,
itemCount: requests.length 1,
scrollDirection: Axis.horizontal,
gridDelegate: new SliverGridDelegateWithFixedCrossAxisCount(
crossAxisCount: 1,
childAspectRatio: 1.2,
mainAxisSpacing: 4,
crossAxisSpacing: 4
),
itemBuilder: (context,index){
if(index==requests.length){
if(loadMore){
return Center(child: NetworkLoader.progressIndicator);
}else{
return Container();
}
}
return SellerRequestTile(
request: requests[index],
);
}
),
),
],
),
);