Я использую StreamBuilder в своем пользовательском интерфейсе ... и я использую переключатель на ConnectionState, как показывает код ... будет, когда я проверяю ошибки типа "Тайм-аут" .. приложение показывает кнопку повторения ... и я вызываюснова данные, используя блок .. в этот конкретный момент мне нужно ConnectionState, чтобы вернуться к ожиданию .. так что потоковый построитель покажет загрузчик.
Я попробовал snapshot.inState (ConnectionState.waiting);при нажатии кнопки повтора .. не работает
// вот код
Виджет 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");
});
}