所以我已经创建了条件,如果调用的数据为空,那么它会显示无数据,但它仍然有错误。
这是代码
Center(
child: ListView.builder(
itemCount: data.length,
itemBuilder: (BuildContext context, int index) {
if (data[index] == null) {
return Container(
child: Center(
child: Text(
"No News"
)
)
);
} else {
return GestureDetector(
onTap: () {
Navigator.push(context, MaterialPageRoute(
builder: (context) =>
DetailNewsScreen(
data: data[index],
)));
},
child: Card(
child: Row(
但它仍然显示错误
答案 0 :(得分:3)
您必须检查您的 data
变量是否为 null
,否则您无法将 data.length
称为 itemCount
您当前正在检查 data[index]
是否不为 null 而不是 data
本身
你可以试试:
Center(
child: ListView.builder(
itemCount: data == null ? 0 : data.length,
itemBuilder: (BuildContext context, int index) {
if (data[index] == null) {
return Container(child: Center(child: Text("No News")));
} else {
// return whatever widget you want
}
}),
),
答案 1 :(得分:1)
data
为空,而不是 data[someIndex]
itemCount: data.length,
您没有涵盖 data==null
的情况。最直接的修复方法是赋值空数组。
if(data==null) data=[];
在构建视图之前的某个地方。