У меня проблема с прокруткой страницы. Я показываю пользователям транзакции, сгруппированные по дням. поэтому внутри ExpansionTile будет несколько элементов.
Сначала я беру дни из базы данных, а затем беру транзакции, совершенные в этот день. поэтому ниже показано, как моя страница работает
- взять все записи
- получить дни и поместить в один список (список дней)
- загрузить основные листы расширения с помощью для l oop в этом списке (список дней)
- когда мы делаем для l oop, принимаем транзакции в этот день и загружаем в другой массив
- , привязываем список детей как дочерние к ExpansionTile.
Мое представление загружается правильно, но когда я открываю подпункты ExpansionTile, я не могу прокрутить страницу. пожалуйста, проверьте видео для более четкого понимания. https://drive.google.com/file/d/1EVETVRHx0vZqiGryrcxUR0klrEX8Y63G/view?usp=sharing
Мой код указан ниже,
Widget build(BuildContext context) {
return new Scaffold(
body: FutureBuilder(
future: getTransactions(),
builder: (context, snapshot) {
if (!snapshot.hasData) {
return Center(child: CircularProgressIndicator());
} else if (feedItemsParent.isEmpty) {
return noRecordsDialogue(context, 'No transactions record', '');
} else if (feedItemsParent.length == 0) {
return noRecordsDialogue(context, 'No transactions record', '');
} else {
return new ListView.builder(
shrinkWrap: true,
itemCount: feedItemsParent.length,
itemBuilder: (BuildContext ctxt, int index) =>
buildBody(ctxt, index));
}
},
),
);
}
ниже - функция buildBody.
Widget buildBody(BuildContext ctxt, int index) {
return new custom.ExpansionTile(
initiallyExpanded: true,
trailing: new Container(width: 20),
headerBackgroundColor: Color(0xFFeff0f1),
title: Text(
feedItemsParent[index].transactiondatesmall.toString(),
style: TextStyle(
fontSize: 16,
color: Colors.black,
fontWeight: FontWeight.bold,
),
),
children: <Widget>[
buildTransactionList(
feedItemsParent[index].transactiondatesmall.toString()),
],
);
}
ниже - как я беру всех детей и связывание их внутри ExpansionTile.
buildTransactionList(dtCompare) {
if (feedItems.length == 0) {
return noRecordsDialogue(context, 'No transactions record', '');
} else {
List<UserTransaction> feedItemsChild = [];
for (int j = 0; j < feedItems.length; j++) {
if (feedItems[j].transactiondatesmall == dtCompare) {
feedItemsChild.add(feedItems[j]);
}
}
return ListView(
padding: const EdgeInsets.only(bottom: 16.0),
shrinkWrap: true,
children: feedItemsChild,
);
}
}
Заранее спасибо.