因此,我使应用程序使用dart编程语言,并且在运行代码时遇到错误,我使用的是Android Studio版本3.6.3和API版本30,我检查了所有代码,如何得到错误消息,我当时看过任何问题,似乎是我的代码中的错误,但对我而言却是行不通的。
这是我的模拟器错误:
这是我的logcat错误:
════════ Exception caught by widgets library ═══════════════════════════════════════════════════════
The following RangeError was thrown building:
RangeError (index): Invalid value: Only valid value is 0: 1
When the exception was thrown, this was the stack:
#0 List.[] (dart:core-patch/growable_array.dart:146:60)
#1 __PageStateListState.build.<anonymous closure> (package:aplikasi_cemilan/main.dart:149:48)
#2 SliverChildBuilderDelegate.build (package:flutter/src/widgets/sliver.dart:446:22)
#3 SliverMultiBoxAdaptorElement._build.<anonymous closure> (package:flutter/src/widgets/sliver.dart:1134:67)
#4 _HashMap.putIfAbsent (dart:collection-patch/collection_patch.dart:139:29)
...
════════════════════════════════════════════════════════════════════════════════════════════════════
这是我的main.dart代码:
@override
Widget build(BuildContext context) {
return Container(
child: ListView.builder(
itemCount: judul.length,
itemBuilder: (BuildContext contex, int index) {
final title = judul[index].toString();
final subTitle = subjudul[index].toString();
final jumlah = jmlh[index].toString();
final img = gambar[index].toString();
final bahan = bahanbahan[index].toString();
final bahanlist = listbahan[index].toString();
final bahanlist2 = listbahan2[index].toString();
final pembuatancara = carapembuatan[index].toString();
return Container(
height: 200.0,
padding: EdgeInsets.all(8.0),
child: GestureDetector(
child: Stack(
children: <Widget>[
backgroundImage(img),
Container(
child: topContent(title, subTitle, jumlah, bahan,
bahanlist, bahanlist2, pembuatancara),
)
],
),
onTap: () {
Navigator.push(
context,
MaterialPageRoute(
builder: (context) => DetailPage(
itemJudul: title,
itemSub: subTitle,
qty: jumlah,
itemImage: img,
bahanbahan: bahan,
listbahanan: bahanlist,
listbahan2: bahanlist2,
carapembuatanan: pembuatancara,
)));
}),
);
}),
);
}
这是我的DetailPage.dart:
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
backgroundColor: Colors.redAccent,
title: Text(
'Detail ' + itemJudul,
style: TextStyle(color: Colors.white),
)),
body: Column(
mainAxisSize: MainAxisSize.min,
mainAxisAlignment: MainAxisAlignment.start,
children: <Widget>[
Center(child: Image.asset(itemImage)),
Text(
itemJudul,
style: TextStyle(color: Colors.redAccent, fontSize: 30.0),
),
Container(
width: 200,
child: Text("Bahan Bahan",
textAlign: TextAlign.center,
style: new TextStyle(fontWeight: FontWeight.bold) // has impact
),
alignment: Alignment.topCenter,
),
Row( // this is new
children: <Widget>[
Flexible( // this is new
child: Text(
listbahanan,
textAlign: TextAlign.left,
),
),
Flexible( // this is new
child: Text(
listbahan2,
textAlign: TextAlign.right,
),
),
Flexible(
child: Text(
carapembuatanan,
textAlign: TextAlign.left,
),
),
],
),
],
),
);
}
这是我在main.dart类内部的变量的字符串:
class __PageStateListState extends State<_PageList> {
List<String> judul = [
'Ayam bakar',
'coklat',
'indomieaceh',
'nasigoreng',
'pecellele',
'rendang',
'sotobetawi',
'keleopn',
'mieaceh',
'sate',
];
List<String> subjudul = [
'makanan enak banget',
'gua suka banget sama makan coklat',
'indomie enak kuy',
'bosen banget makan nasigorang , di idn makanannya jangan nasigoreng terus dong',
'apa lagi pecel lele , udah bosen IDN!!! wa udah bosen sama pecel lele',
'eh idn , kali kali makannya rendang dong!!',
'makananya soto betawi dong , jangan soto biasa terus bosen gua!!',
'kali kali lah idn jajanin kelepon',
'bikinin mie aceh juga dong IDN!!!!',
'emang IDN Miskin Noob gak bisa beli sate !!!!',
];
List<String> gambar = [
'assets/images/ayambakar.png',
'assets/images/coklat.png',
'assets/images/indomieaceh.png',
'assets/images/nasigoreng.png',
'assets/images/pecellele.png',
'assets/images/rendang.png',
'assets/images/sotobetawi.png',
'assets/images/keleopn.png',
'assets/images/mieaceh.png',
'assets/images/sate.png',
];
List<String> jmlh = [
'20',
'20',
'20',
'20',
'20',
'20',
'20',
'20',
'20',
'20',
'20',
'20',
'20',
];
List<String> bahanbahan = [
'bahan bahan',
'bahan bahan',
'bahan bahan',
'bahan bahan',
'bahan bahan',
'bahan bahan',
'bahan bahan',
'bahan bahan',
'bahan bahan',
'bahan bahan',
];
List<String> listbahan = [
'1. 1 kg Ayam\n 2.Bumbu ungkep :\n 3. 10 Bawang putih\n 4. 1 sdt ketumbar\n 5. 1 sdt merica butir\n 6. 5 butir Kemiri\n 7. Lengkuas\n 8. Beberapa ruas kunyit\n 9. 3 cm jahe (digeprek)\n 10. Garam\n ',
'1. 200 gr susu cair\n 2.100 gr skm\n 3.10 gr coklat powder/coklat pahit\n 4.8 gr maizena\n 5.100 gr dcc potong2\n 6.20 gr butter/margarin\n 7.Sejumput garam\n 8. Sponge cake strawberry/mocca:\n ',
'1. 3 bungkus Mie instan\n 2. 2 sendok Kecap \n 3. Bumbu\n 4. 2 biji kemiri\n 5. 5 biji Cabe \n 6. 3 Bawang merah \n 7. 1 Bawang putih\n 8. 1 Tomat\n 9. 2 sendok teh Garam\n 10. 1/2 sendok teh Merica\n ',
'1. 1 piring nasi dingin\n 2. 5 bh cabe rawit,\n iris 3. 3 bh bawang merah,\n iris 4. 2 siung bawang putih,\n iris 5. 1 btr telur\n 6. 1 sdm kecap manis\n 7. 1 sdm kecap asin\n 8. 1/2 sdt gula pasir\n 9. 1/2 sdt merica\n 10. secukupnya Garam\n ',
'1. Ikan lele 3 ekor\n 2. Minyak goreng untuk menggoreng ikan\n 3. Bawang putih - 3 siung\n 4. Kunyit - 1/2 ruas\n 5. Garam - 1/4 sdt\n 6. Cabe rawit - 10\n buah 7. Cabe besar - 3\n buah 8. Bawang merah - 3 siung\n 9. Tomat - 1 buah\n',
'1. 700 gram daging kambing\n 2.1 butir kelapa parut / 1000 ml santan\n 3. 1 potong asam gelugur\n 4. 4 lbr daun jeruk purut\n 5. secukupnya Garam\n 6. 1 lbr daun kunyit\n 7. 2 lbr daun salam\n 8. 2 buah bunga lawang\n Bumbu dihaluskan :\n 9. 200 gram cabe merah\n ',
'bahan bahan',
'bahan bahan',
'bahan bahan',
'bahan bahan',
];
List<String> listbahan2 = [
'11. 4 lembar daun salam\n 12. Bumbu olesan :\n 13. 4 siung bawang putih\n 14. 1 sdt ketumbar\n 15. 20 cabai rawit (sesuaikan dgn selera)\n 16. Kecap manis\n 17. 1 buah jeruk limau/nipis\n 18. Minyak\n ',
'9.4 kuning telur\n 10.4 putih telur\n 11. 80 gr gula pasir\n 12. 80 gr susu cair\n 13. 1 sdt pasta stroberry/mocca\n 14. 50 gr minyak\n 15. 80 gr terigu serbaguna\n 16. 1 sdt baking powder\n ',
'',
'',
'10. Terasi - 1/2 sdt\n 11. Gula merah - 1/2 sdm\n 12. Minyak untuk menggoreng - 3 sdm\n 13. Garam - secukupnya\n ',
'10. 100 gram bawang merah\n 11. 2 siung bawang putih\n 12. 4 cm jahe\n 13. 8 cm kunyit\n 14. 10 cm langkuas\n 15. 2 buah kemiri\n 16. 1 batang sreh\n 17. 1 sdm ketumbar\n 18. 1/2 buah pala\n 19. 1/2 sdt jintan\n ',
'bahan bahan',
'bahan bahan',
'bahan bahan',
'bahan bahan',
];
List<String> carapembuatan = [
'1. Ulek semua bumbu ungkep lalu tumis hingga harum, beri air, masukkan daun salam dan ayam. Ungkep kurang lebih 1 jam agar daging empuk. Angkat dan lalu buat beberapa belahan agar ketika dibakar, bumbu meresap sampai ke dalam',
];
答案 0 :(得分:0)
将final pembuatancara = carapembuatan[index];
替换为
final pembuatancara = carapembuatan[0];
,因为它只有一个孩子。
答案 1 :(得分:0)
您正在尝试获取列表index
中不可用的carapembuatan
。
要解决此问题,您可以:
- 像在其他列表中一样,用空白的
carapembuatan
填充Strings
列表。
List<String> carapembuatan = [
'1. Ulek semua bumbu ungkep lalu tumis hingga harum, beri air, masukkan daun salam dan ayam. Ungkep kurang lebih 1 jam agar daging empuk. Angkat dan lalu buat beberapa belahan agar ketika dibakar, bumbu meresap sampai ke dalam',
'',
.... // up to ten items
'',
];
- 将
0
的硬编码索引传递到列表carapembuatan
。
// pass a hardcoded value of 0 as the index
final pembuatancara = carapembuatan[0].toString();