Я сейчас занимаюсь разработкой приложения для киоска меню, и у меня возникли некоторые проблемы с загрузкой изображений в моем приложении. Я не забудьте указать каждое изображение в моем pubspe c .yaml, но изображения по-прежнему не отображаются. Я получаю следующее сообщение об ошибке:
════════ Exception caught by image resource service ════════════════════════════
Unable to load asset: assets/images/sideDesserts/Dippers with Choco Dip.png
════════════════════════════════════════════════════════════════════════════════
Вот что содержит мой pubspe c .yaml
# To add assets to your application, add an assets section, like this:
assets:
- assets/images/
- assets/images/sideNav/
#pizza assets
- assets/images/pizza/Hawaiian Overload.png
- assets/images/pizza/Bacon Overload.png
- assets/images/pizza/All In Overload.png
- assets/images/pizza/All Beef Overload.png
- assets/images/pizza/hamandCheese.png
- assets/images/pizza/Peperroni Classic.png
- assets/images/pizza/veggies_cheesedouble.png
- assets/images/pizza/Ham Pineapple Classic.png
- assets/images/pizza/Cheese Classic.png
#barkada assets
- assets/images/barkada/Barkada Bundle A.png
- assets/images/barkada/Barkada Bundle B.png
- assets/images/barkada/Barkada Bundle C.png
#chicken assets
- assets/images/chicken/1pc Chicken with Rice.png
- assets/images/chicken/2pc Chicken Meal with Rice.png
- assets/images/chicken/Chicken Waves.png
#combo assets
- assets/images/combo/Carbonara Chicken Combo.png
- assets/images/combo/Creamy Bacon Carbonara Value Meal.png
- assets/images/combo/Lasagna Chicken Combo.png
- assets/images/combo/Lasagna Supreme Value Meal.png
- assets/images/combo/Meaty Spaghetti Chicken Combo.png
- assets/images/combo/Meaty Spaghetti Value Meal.png
- assets/images/combo/Pizza Value Meal A.png
- assets/images/combo/Pizza Value Meal B.png
- assets/images/combo/Pizza Value Meal C.png
- assets/images/combo/Pizza Loaded Combo D.png
- assets/images/combo/Pizza Loaded Combo E.png
#drink assets
- assets/images/drinks/Choco Slush.png
- assets/images/drinks/coke pitcher.png
- assets/images/drinks/Coke Zero.png
- assets/images/drinks/Coke.png
- assets/images/drinks/Coke Glass.png
- assets/images/drinks/Ice Tea.png
- assets/images/drinks/Nestea Glass.png
- assets/images/drinks/Nestea Pitcher.png
- assets/images/drinks/PJ Pitcher.png
- assets/images/drinks/Pj.png
- assets/images/drinks/Sprite.png
#pasta assets
- assets/images/pasta/Lasagna Supreme Ala Carte.png
- assets/images/pasta/Meaty Spaghetti Ala Carte.png
- assets/images/pasta/Creamy Bacon Carbonara Ala Carte.png
- assets/images/pasta/Lasagna Supreme Large Pan.png
- assets/images/pasta/Meaty Spaghetti Large Pan.png
- assets/images/pasta/Creamy Bacon Carbonara Pan.png
- assets/images/pasta/Lasagna Supreme Pan.png
- assets/images/pasta/Meaty Spaghetti Regular Pan.png
- assets/images/pasta/Creamy Bacon Carbonara Regular Pan.png
#sides Desserts assets
- assets/images/sideDesserts/Regular Potato Waves.png
- assets/images/sideDesserts/Cheesy Bread Sticks with Dip.png
- assets/images/sideDesserts/Dippers with Choco Dip.png
- assets/images/sideDesserts/Large Potato Waves.png
- assets/images/sideDesserts/Plain Rice.png
#logos
- assets/images/Logos/box Logo.png
- assets/images/Logos/long logo.png
Я также создал пользовательские данные c Список моделей для различные типы меню, например:
class BarkadaData {
String name;
String imagePath;
double price;
BarkadaData({this.imagePath, this.name, this.price});
static List<BarkadaData> barkadaList = [
BarkadaData(
name: 'Barkada Bundle A (for 3)',
price: 469.00,
imagePath: 'assets/images/barkada/Barkada Bundle A.png'),
BarkadaData(
name: 'Barkada Bundle B (for 4)',
price: 569.00,
imagePath: 'assets/images/barkada/Barkada Bundle B.png'),
BarkadaData(
name: 'Barkada Bundle C (for 6)',
price: 969.00,
imagePath: 'assets/images/barkada/Barkada Bundle C.png'),
];
}
Наконец, я отображаю его с помощью GridView.builder, мое дерево виджетов выглядит так:
Container(
width: MediaQuery.of(context).size.width * .75,
child: GridView.builder(
itemCount: barkadaList.length,
gridDelegate:
SliverGridDelegateWithFixedCrossAxisCount(
crossAxisCount: 3),
itemBuilder: (BuildContext context, int index) {
return InkWell(
onTap: () {
print(barkadaList[index].name);
},
child: Padding(
padding: const EdgeInsets.all(8.0),
child: Stack(
children: <Widget>[
Container(
width: MediaQuery.of(context).size.width *
.22,
child: Image(
image: AssetImage(
barkadaList[index].imagePath),
),
),
Text(
'${barkadaList[index].name}',
style: TextStyle(
fontWeight: FontWeight.w600,
fontSize: 18),
textAlign: TextAlign.center,
)
],
),
),
);
},
),
)
Как видите, gridview.builder работает, потому что отображаются имена, а не изображения. Любая помощь будет оценена