Как правильно вернуть StreamBuilder ConnectionState из активного в состояние ожидания?
Я использую StreamBuilder в своем пользовательском интерфейсе... и я использую переключатель ConnectionState, как показывает код... будет, когда я проверю наличие ошибок, таких как "Тайм-аут" ... приложение показывает кнопку повтора... и я снова вызываю данные используя bloc.. в этот конкретный момент мне нужно, чтобы ConnectionState вернулся в режим ожидания.. поэтому streambuilder покажет загрузчик.
Я пробовал snapshot.inState(ConnectionState.waiting); при нажатии кнопки повтора.. не сработало
// вот код
Widget streamBuilder() {
return StreamBuilder(
stream: blocFaQs.subject.stream,
builder: (BuildContext _context, AsyncSnapshot<FaQsModel> snapshot) {
if(snapshot.hasError ){
return Container(
child: Center(
child: Column(
children: <Widget>[
Text(snapshot.error.toString()),
RaisedButton(
onPressed: (){
initBloc();
},
color: GlobalColors.getGlobalColorByName("purple_dark"),
child:Text("Retry") ,
)
],
),
),
);
}
switch (snapshot.connectionState) {
case ConnectionState.none:
return Text('there is no conection.');
case ConnectionState.waiting:
{
return Container(
height: MediaQuery.of(context).size.height * 0.7,
child: Center(
child: CustomLoader.buildLoader(
LoaderType.SpinKitChasingDots,
LoaderSize.BigLoader),
),
);
}
case ConnectionState.active:{
if(snapshot.data.E.isError==true){
return Container(
child: Center(
child: Column(
children: <Widget>[
Text(snapshot.data.E.errorMessage),
RaisedButton(
onPressed: (){
snapshot.inState(ConnectionState.waiting);
initBloc();
setState(() {
});
},
color: GlobalColors.getGlobalColorByName("purple_dark"),
child:Text("Retry") ,
)
],
),
),
);
}
return ListView.builder(
itemCount: snapshot.data.result.items.length,
itemBuilder: (BuildContext ctxt, int index) {
var question = (snapshot.data.result.items[index].question);
var answer = (snapshot.data.result.items[index].answer);
// Card Help_buildCard(int id,int active,String TicketName,String Status,String Time,String Issu,String Answer)
return Help_buildGroovinExpansionTile(
question, answer);
});
}
case ConnectionState.done:{
return Text("");
}
}
return Text("Unreachable");
});
}