Flutter streamBuilder initalData не работает должным образом

Мне нужна функция поиска на странице A. После нажатия значка поиска элементы будут извлечены с сервера и сохранены в sink, а затем использовать stream для заполнения в listView.

Но теперь он застревает на ConnectionState.waiting, когда я не нажимаю значок поиска. Как заставить его изначально отображать Нет элемента? При нажатии на значок поиска отображается только вывод?

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");
                }
              },
            ))

person John Joe    schedule 27.05.2020    source источник


Ответы (1)


добавить if (!snapshot.hasData) return LinearProgressIndicator(); в builder: (context, snapshot) {

Ссылка firebase flutter codelab

person dev-aentgs    schedule 27.05.2020