Flutter streamBuilder initalData 未按预期工作
Flutter streamBuilder initalData not working as expected
我需要在页面A中有一个搜索功能。按下搜索图标后,它将从服务器检索项目并存储到sink
,然后使用stream
填充到listView中.
但现在当我不按搜索图标时它一直停留在 ConnectionState.waiting
。如何让它一开始显示No item?单击搜索图标时,只有它显示输出?
Container(
child: StreamBuilder<List<ABC>>(
initialData: null,
stream: _bloc.displayStream,
builder: (context, snapshot) {
switch (snapshot.connectionState) {
case ConnectionState.active:
if (snapshot.data.isEmpty) {
return Center(
child: Column(
mainAxisAlignment: MainAxisAlignment.center,
children: <Widget>[
Icon(
Icons.format_list_bulleted,
size: 80,
color: Colors.orange,
),
SizedBox(
height: 20,
),
Text(
'No item',
style: TextStyle(fontSize: 18),
)
]));
} else {
return Stack(
children: <Widget>[
_showListView(snapshot),
],
);
}
break;
case ConnectionState.waiting:
return Center(
child: Image.asset(
'assets/loading.gif',
width: 200.0,
height: 200.0,
),
);
break;
default:
return Text("Error");
}
},
))
在builder: (context, snapshot) {
中添加if (!snapshot.hasData) return LinearProgressIndicator();
我需要在页面A中有一个搜索功能。按下搜索图标后,它将从服务器检索项目并存储到sink
,然后使用stream
填充到listView中.
但现在当我不按搜索图标时它一直停留在 ConnectionState.waiting
。如何让它一开始显示No item?单击搜索图标时,只有它显示输出?
Container(
child: StreamBuilder<List<ABC>>(
initialData: null,
stream: _bloc.displayStream,
builder: (context, snapshot) {
switch (snapshot.connectionState) {
case ConnectionState.active:
if (snapshot.data.isEmpty) {
return Center(
child: Column(
mainAxisAlignment: MainAxisAlignment.center,
children: <Widget>[
Icon(
Icons.format_list_bulleted,
size: 80,
color: Colors.orange,
),
SizedBox(
height: 20,
),
Text(
'No item',
style: TextStyle(fontSize: 18),
)
]));
} else {
return Stack(
children: <Widget>[
_showListView(snapshot),
],
);
}
break;
case ConnectionState.waiting:
return Center(
child: Image.asset(
'assets/loading.gif',
width: 200.0,
height: 200.0,
),
);
break;
default:
return Text("Error");
}
},
))
在builder: (context, snapshot) {
if (!snapshot.hasData) return LinearProgressIndicator();