首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在Flutter中使用PaginatedDataTable中的DataRows列表?

如何在Flutter中使用PaginatedDataTable中的DataRows列表?
EN

Stack Overflow用户
提问于 2021-06-26 03:37:26
回答 1查看 95关注 0票数 0

我有一个用户可以动态添加和删除DataRows的DataTable。正因为如此,DataTable可以变得非常大。为了提高性能,我希望使用PaginatedDataTable。但是这个Widget需要一个额外的数据源类。它的基本代码如下所示:

代码语言:javascript
复制
class DataSource extends DataTableSource {

  int _selectedCount = 0;

  @override
  int get rowCount => list.length;

  @override
  bool get isRowCountApproximate => false;

  @override
  int get selectedRowCount => _selectedCount;

  @override
  DataRow getRow(int index) {

    return DataRow.byIndex(
        index: index,
        cells: <DataCell>[
          DataCell(Text('1')),
          DataCell(Text('2')),
          DataCell(Text('3')),
          DataCell(Text('4')),
        ]);
  }
}

在我的旧代码中,我使用了一个DataTable,我将所有的DataRows放在一个列表中,它工作得很好。以下是代码的代码片段和列表:

代码语言:javascript
复制
class ExerciseTable extends StatefulWidget {

  @override
  _ExerciseTableState createState() => _ExerciseTableState();
}

class _ExerciseTableState extends State<ExerciseTable> {
  ExerciseDataSource _rowsDataSource;

  List<DataRow> _rowList = [
    DataRow(cells: <DataCell>[
          DataCell(Text('1')),
          DataCell(Text('2')),
          DataCell(Text('3')),
          DataCell(Text('4')),
    ]),
  ];

  void _addRow() {
    _rowList.insert(0,
       DataRow(cells: <DataCell>[
          DataCell(Text('1')),
          DataCell(Text('2')),
          DataCell(Text('3')),
          DataCell(Text('4')),
        ])
    );
  }

  void _removeRow() {
    setState(() {
      _rowList.removeAt(0);
    });
  }

现在我想在PaginatedDataTable中使用与DataRows相同的列表,但是如何将列表集成到'DataSource‘类中呢?我很感谢每一个答案,如果有人知道如何做到这一点就太好了:)

EN

回答 1

Stack Overflow用户

发布于 2021-06-26 18:59:19

在客户需求上集成PaginatedDataTable可能有点令人困惑,但您可以将数据源列表传递给DataSource类(通过构造函数),并在getRow方法上使用可以遍历数据的索引。

一个示例可能是:

代码语言:javascript
复制
@Override
DataRow getRow(int index) {
 final currentData = yourDataList[index]
 return DataRow.byIndex(
  index: index,
  cells: <DataCell>[
   DataCell(Text('${currentData.name}'},
  ],
 );
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/68136315

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档