Использование ListView.builder () с экземпляром firebase и отсутствие входа в элемент itemBuilder - PullRequest
0 голосов
/ 01 июля 2019

Таким образом, приведенный ниже код попадает в строку для itemCount с ListViewBuilder. Однако по какой-либо причине он даже не наступает на строку для itemBuilder.

Я попытался полностью очистить решение, удалить itemCount и по какой-либо причине ничего. Я также включаю метод, который должен вызывать.

          SingleChildScrollView(child: 
            StreamBuilder(
              stream: Firestore.instance
                  .collection('achievements')
                  .where('category', isEqualTo: state)
                  .snapshots(),
              builder: (context, snapshot) {
                if (!snapshot.hasData) return const Text('Loading...');
                if (snapshot.data.documents.length != 0)
                  return ListView.builder(
                    itemCount: snapshot.data.documents.length,
                    itemBuilder: (context, int index) =>
                        _buildAchievementItem(context, snapshot.data.documents[index]));
                return Row();
              },
            )
          ),

Ниже приведена внутренняя часть метода _buildAchievementItem ().

Widget _buildAchievementItem(BuildContext context, DocumentSnapshot document) {
    return ListTile(
      title: Row(
        children: <Widget>[
          Expanded(
            child: Text(
              document['name'],
              style: Theme.of(context).textTheme.headline,
            ),
          ),
          Container(
            decoration: const BoxDecoration(color: Color(0xffddddff)),
            padding: const EdgeInsets.all(5.0),
            child: Text(document['points'].toString(),
                style: Theme.of(context).textTheme.display1),
          )
        ],
      )
      );
  }

Относительно плохо знаком с флаттером, но не вижу, что может заставить его не наступать на эту строку при отладке в коде VS.

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