如何解决具有用于列表图块的动态sqlite数据的扩展图块-Flutter
我目前有带类别和子类别的sqflite数据库。每个类别项目的子类别下的项目数都不相同。
我在类别级别使用扩展图块,在子类别级别使用列表图块。但是,我的问题是显示每个类别的多个子类别记录。
这是我的无状态小组件的代码。
需要帮助来迭代子类别级别的所有项目,并在下一个扩展图块开始之前将其显示在列表图块下。
class MainAcc extends StatelessWidget {
DatabaseHelper _dbHelper;
List<AllAccounts> _allaccounts = List<AllAccounts>();
int _count = 0;
String maincat = 'maincat';
Future <int> _getMainAcc(maincat) async {
_dbHelper = DatabaseHelper.instance;
List<AllAccounts> x = await _dbHelper.getMainAcc(maincat);
_allaccounts = x;
_count = x.length;
print(_count);
return _count;
}
@override
Widget build(BuildContext context) {
final Map arguments = ModalRoute
.of(context)
.settings
.arguments as Map;
maincat = arguments['category'];
return Scaffold(
appBar: AppBar(
title: Text(maincat),centerTitle: true,),body: Center(
child: Padding(
padding: const EdgeInsets.all(8.0),child: Column(
mainAxisAlignment: MainAxisAlignment.start,children: [
SizedBox(
height: 20.0,Text(
'Select a Main Account to Add/Edit',style: TextStyle(fontSize: 18.0),SizedBox(
height: 20.0,_list(),],);
}
_list() =>
Expanded(
child: FutureBuilder<int>(
future: _getMainAcc(maincat),builder: (context,snapshot) {
if (snapshot.connectionState == ConnectionState.none &&
snapshot.hasData == null) {
return Center(
child: CircularProgressIndicator(),);
}
return ListView.builder(
itemCount: _count,itemBuilder: (context,position) {
return Card(
color: Colors.grey[600],elevation: 2.0,child: ExpansionTile(
leading: Icon(Icons.group,color: Colors.black,title: Text(_allaccounts[position].maincat,style: TextStyle(color: Colors.black),children: [
Padding(
padding: EdgeInsets.only(left: 8.0),child: ListTile(
leading: Icon(Icons.fast_forward),title: Text(_allaccounts[position].subcat,style: TextStyle(fontSize: 17.0)),trailing: Icon(Icons.arrow_forward),onTap: () {},)
],);
});
},);
此代码的问题在于,即使对于相同的类别(但具有不同的子类别),也会创建一个新的扩展图块。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。