#flutter #flutter-layout #flutter-dependencies #flutter-animation
#flutter #flutter-layout #flutter-зависимости #flutter-анимация
Вопрос:
Я работаю над приложением Flutter, в котором я хочу отобразить параметр загрузки в течение 5 секунд, и через 5 секунд он отобразит «Результат не найден».
код
Widget Loading(){
return Center(
child: Shimmer.fromColors(
baseColor: Colors.blueAccent,
highlightColor: Colors.red,
child:Text("Loading...",style: TextStyle(
fontWeight: FontWeight.w900,
fontSize: 50),
textAlign: TextAlign.center,),
period: Duration(seconds: 2),
),
);
}
/// Use of Loading() in flutter pages
body: (Details == null||Details.isEmpty)?
Loading()
: new SizedBox(.............)
// In this case, if "Details" has some data it automatically displays on-screen else, continuously loading(), I want after 5 seconds it displays "No Data Found"
Кто-нибудь знает, как добавить таймер / длительность / задержку в приведенный выше код?, Чтобы через 5 секунд на экране отображалось сообщение «Данные не найдены».
Ответ №1:
Для этого вы можете использовать FutureBuilder. Вот пример:
Это будущая функция для FutureBuilder. В этой функции вы можете построить свою собственную логику.
Future<bool> _future = Future<bool>.delayed(
Duration(seconds: 5),
() {
//do something here
return true;
},
);
И это FutureBuilder должен выглядеть следующим образом
FutureBuilder<bool>(
future: _future,
builder: (BuildContext context, AsyncSnapshot<bool> snapshot) {
if (snapshot.hasData) {
return snapshot.data ? SizedBox(.............) : Text("No data found");
} else {
return Loading();
}
},
)