Таким образом, приведенный ниже код попадает в строку для 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.