Flutter 颤振:当快照为空时,小部件将消失
我试图建立一个搜索列表,该列表工作正常,但如果结果为空,我需要显示没有数据。我尝试了以下代码,但小部件保持了一秒钟,然后消失了Flutter 颤振:当快照为空时,小部件将消失,flutter,flutter-layout,snapshot,no-data,Flutter,Flutter Layout,Snapshot,No Data,我试图建立一个搜索列表,该列表工作正常,但如果结果为空,我需要显示没有数据。我尝试了以下代码,但小部件保持了一秒钟,然后消失了 FutureBuilder( future: getSearchedProducts(widget.searchString), builder: (BuildContext context, AsyncSnapshot snapshot) { i
FutureBuilder(
future: getSearchedProducts(widget.searchString),
builder: (BuildContext context, AsyncSnapshot snapshot) {
if (!snapshot.hasData) {
return Center(
child: Container(
child: Text('No Data Found.'),
),
);
} else {
return ListView.builder(
shrinkWrap: true,
itemCount: searchResult.length,
scrollDirection: Axis.vertical,
itemBuilder: (context, index) {
return Card(
child: ListTile(
leading: Image.network(searchResult[index].proThumbnail),
title: Text(searchResult[index].proName),
onTap: () {
print(searchResult[index].proName);
Navigator.push(context, MaterialPageRoute(builder: (context) {
return ProductPage(prodid: searchResult[index].proId);
}));
},
),
);
});
}
})
有人能帮我吗。
提前感谢。在
中的代码中,在之前的部分中-返回ListView.builder
-添加以下代码
...
else {
if (searchResult.length == 0)
{
return Center(child: const Text('No Date'));
}
return ListView.builder .....
我只是写了下面的代码,它的工作
FutureBuilder(
future: getSearchedProducts(widget.searchString),
builder: (BuildContext context, AsyncSnapshot snapshot) {
print('length of list ${searchResult.length}');
if (searchResult.length==0) {
return Center(
child: Text('No data'),
);
}
else if (!snapshot.hasData) {
return Center(
child: CircularProgressIndicator(),
);
}
else {
return ListView.builder(
shrinkWrap: true,
itemCount: searchResult.length,
scrollDirection: Axis.vertical,
itemBuilder: (context, index) {
return Card(
child: ListTile(
leading: Image.network(searchResult[index].proThumbnail),
title: Text(searchResult[index].proName),
onTap: () {
print(searchResult[index].proName);
Navigator.push(context, MaterialPageRoute(builder: (context) {
return ProductPage(prodid: searchResult[index].proId);
}));
},
),
);
});
}
}),
在if
条件之前-尝试-打印(searchResult.length)代码>没有数据时打印0。