Я создаю это приложение флаттера, в котором я хочу поместить элементы одного и того же списка с последовательными значениями индекса в одной строке, но я получаю эту ошибку с диапазоном списка (который я ожидал), но не могу выяснить решение. дочерний: Image.asset (menuItemList [index + 1] .image) -> из-за этой строки, особенно когда menuItemList достигает своего предела, он добавляет +1 к индексу, который выходит за пределы диапазона .. Я хотел бы знать, есть ли - другой способ сделать это, или если я могу использовать оператор if для ограничения диапазона
код
import 'package:flutter/cupertino.dart';
import 'package:flutter/material.dart';
import 'package:projectfooddelivery/Src/models/menu_item.dart';
List<MenuItem> menuItemList = [
MenuItem(
name: "Steak",
image: "images/kfcfood.jpg",
price: 8.99,
icon: IconButton(
icon: Icon(Icons.add_circle), color: Colors.deepOrange,
)),
MenuItem(name: "Steak", image: "images/kfcfood.jpg", price: 8.99, icon:IconButton(icon: IconButton(icon: Icon(Icons.add_circle,color: Colors.deepOrange,size: 35,), onPressed: null), onPressed: null),),
MenuItem(name: "Chips", image: "images/kfcfood.jpg", price: 30.99),
MenuItem(name: "Steak", image: "images/kfcfood.jpg", price: 8.99),
MenuItem(name: "Steak", image: "images/kfcfood.jpg", price: 8.99),
MenuItem(name: "Steak", image: "images/kfcfood.jpg", price: 8.99),
MenuItem(name: "Steak", image: "images/kfcfood.jpg", price: 8.99),
MenuItem(name: "Steak", image: "images/kfcfood.jpg", price: 8.99),
MenuItem(name: "Steak", image: "images/kfcfood.jpg", price: 8.99),
MenuItem(name: "Steak", image: "images/kfcfood.jpg", price: 8.99),
];
class MenuWidget extends StatelessWidget {
@override
Widget build(BuildContext context) {
return Container(
padding: EdgeInsets.only(top: 0),
height: 200,
child: ListView.builder(
scrollDirection: Axis.vertical,
itemCount: menuItemList.length,
itemBuilder: (_, index) {
return Padding(
padding: const EdgeInsets.all(6.0),
child: Container(
child: Row(
children: <Widget>[
Container(
height: 150,
child: Stack(
children: <Widget>[
ClipRRect(
borderRadius: BorderRadius.circular(20),
child: Image.asset(menuItemList[index].image)
),
Align(
alignment: Alignment.center,
child: Column(
children: <Widget>[
Text("bRO")
],
),
)
],
),
),
Padding(
padding: const EdgeInsets.only(left:18.0),
child: Container(
height: 150,
child:
Stack(
children: <Widget>[
ClipRRect(
borderRadius: BorderRadius.circular(20),
child: Image.asset(menuItemList[index+1].image)
),
Align(
alignment: Alignment.center,
child: Column(
children: <Widget>[
Text("Something")
],
),
)
],
),
),
)
],
)),
);
},
)
);
}
}