Как показать текстовый виджет, когда экран не запрашивает данные из Firebase - PullRequest
0 голосов
/ 08 июля 2020

У меня есть экран активности, который получает данные из Firebase, я пытаюсь показать текстовое сообщение типа «Нет действий», когда база данных не предоставляет данные.

Я попытался использовать тернарный оператор условие, которое проверяет, пуста ли база данных и работает ли она, однако проблема в том, что когда я go экран активности и на нем есть данные, он все еще показывает сообщение в течение примерно 1 секунды, а затем показывает экран активности, поэтому я хотел бы знать, есть ли лучший способ реализовать это.

Надеюсь, это имеет смысл.

См. код ниже

      @override
  Widget build(BuildContext context) {
    return Scaffold(
      body: RefreshIndicator(
        onRefresh: () => _setupActivities(),
        child: _activities.isEmpty
            ? Center(
                child: Text(
                  'Aun no Tienes Notificaciones',
                  style: ktextTitlesStyle.copyWith(
                      color: Colors.black,
                      fontSize: responsive.height(context) / 50),
                ),
                )
            : ListView.builder(
                itemCount: _activities.length,
                itemBuilder: (BuildContext context, int index) {
                  Activity activity = _activities[index];
                  return _buildActivity(activity);
                },
              ),
      ),
    );
  }

}

1 Ответ

1 голос
/ 09 июля 2020

Я не уверен, что полностью понимаю, что вы пытаетесь выполнить sh, но проверка .hasData на AsyncSnapshot может помочь определить, возвращаются ли данные.

Container( child: FutureBuilder(future: someFutureFirebaseDataReturningMethod(), builder: (context, snapshot) { 
    if (!snapshot.hasData) return _noActiviesYet();
    return _showActivies(snapshot, context);
}))

.hasData возвращает «содержит ли этот снимок ненулевое значение данных». (https://api.flutter.dev/flutter/widgets/AsyncSnapshot/hasData.html)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...