具有用于列表图块的动态sqlite数据的扩展图块-Flutter

如何解决具有用于列表图块的动态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 举报,一经查实,本站将立刻删除。

相关推荐


Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其他元素将获得点击?
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。)
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbcDriver发生异常。为什么?
这是用Java进行XML解析的最佳库。
Java的PriorityQueue的内置迭代器不会以任何特定顺序遍历数据结构。为什么?
如何在Java中聆听按键时移动图像。
Java“Program to an interface”。这是什么意思?
Java在半透明框架/面板/组件上重新绘画。
Java“ Class.forName()”和“ Class.forName()。newInstance()”之间有什么区别?
在此环境中不提供编译器。也许是在JRE而不是JDK上运行?
Java用相同的方法在一个类中实现两个接口。哪种接口方法被覆盖?
Java 什么是Runtime.getRuntime()。totalMemory()和freeMemory()?
java.library.path中的java.lang.UnsatisfiedLinkError否*****。dll
JavaFX“位置是必需的。” 即使在同一包装中
Java 导入两个具有相同名称的类。怎么处理?
Java 是否应该在HttpServletResponse.getOutputStream()/。getWriter()上调用.close()?
Java RegEx元字符(。)和普通点?