Aug*_*sto 11 datatable dart flutter
我正在实现 aDataTable来显示一些数据,为此我正在使用 a PaginatedDataTable,这样我就可以加载并显示我的数据,问题是我的每行DataTable显示一个复选框,而我不想要它。
这是我目前的结果:
\n\n\n\n我想删除这些复选框,但我不知道该怎么做。
\n\n代码:
\n\nExpensesDataSource _expensesDataSource = ExpensesDataSource([expense]);\n\n Widget getDataTable() {\n return PaginatedDataTable(\n header: Text(\'Despesas\', style: TextStyle(color: Color(0xFF4C4C4C), fontWeight: FontWeight.bold, fontSize: 15),),\n columns: <DataColumn>[\n DataColumn(\n label: Text("Data"),\n numeric: false,\n ),\n DataColumn(\n label: Text("Descri\xc3\xa7\xc3\xa3o"),\n numeric: false,\n ),\n DataColumn(\n label: Text("Total"),\n numeric: false,\n ),\n ],\n source: _expensesDataSource,\n );\n }\n\n\nclass ExpensesDataSource extends DataTableSource {\n\n List<Expense> _expenses = <Expense>[];\n int _selectedCount = 0;\n\n ExpensesDataSource(List<Expense> listExpenses) {\n this._expenses = listExpenses;\n }\n\n @override\n DataRow getRow(int index) {\n final Expense expense = _expenses[index];\n return DataRow.byIndex(\n index: index,\n onSelectChanged: (bool value) {\n print(\'Row selected: $value ${expense.name}\');\n },\n cells: [\n DataCell(Text(expense.date)),\n DataCell(Text(expense.name)),\n DataCell(Text(Utils.convert2currency(expense.total_amount)))\n ]\n );\n }\n\n @override\n // TODO: implement rowCount\n int get rowCount => _expenses.length;\n\n @override\n bool get isRowCountApproximate => false;\n\n @override\n int get selectedRowCount => _selectedCount;\n\n}\nRun Code Online (Sandbox Code Playgroud)\n
Sha*_*hra 10
更新
现已在稳定频道上提供。
如果您位于主频道而不是稳定频道,则有可能。
您只需添加一个为DataTablefalse 的属性showCheckboxColumn。
编辑后的完整代码将是
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
title: Text(
"Sample",
style: TextStyle(color: Colors.white),
),
body: Column(children: <Widget>[
DataTable(
showCheckboxColumn: false,
sortAscending: true,
columns: <DataColumn>[
DataColumn(
label: Text('Product name'),
),
DataColumn(
label: Text('Product Quantity'),
),
],
rows: items
.map(
(itemRow) => DataRow(
onSelectChanged: (bool selected) {
if (selected) {
//'row-selected: ${itemRow.index}'
}
},
cells: [
DataCell(
Text(itemRow.itemName),
showEditIcon: false,
placeholder: false,
),
DataCell(
Text(itemRow.itemQuantity),
showEditIcon: true,
placeholder: false,
//onTap: _getSelectedRowInfo,
),
],
),
)
.toList(),
)
]),
bottomNavigationBar: BottomNavigationBar(
items: const <BottomNavigationBarItem>[
BottomNavigationBarItem(
icon: Icon(Icons.home),
title: Text('Home'),
),
],
currentIndex: _selectedIndex,
selectedItemColor: Colors.amber[800],
onTap: _onItemTapped,
));
}
}
Run Code Online (Sandbox Code Playgroud)
一些 flutter 开发人员不建议更改为 master,但如果没有问题,您可以使用以下命令更改它:
flutter channel master
flutter upgrade
目前只能通过省略onSelectionChange: ...或传递null
来代替
onSelectChanged: (bool value) {
print('Row selected: $value ${expense.name}');
},
Run Code Online (Sandbox Code Playgroud)
https://docs.flutter.io/flutter/material/DataRow/onSelectChanged.html
| 归档时间: |
|
| 查看次数: |
8929 次 |
| 最近记录: |