我正在使用Flutter DataTables显示购物车中的项目列表。现在,我要编辑任何选定行的数量。有没有办法获取用户点击的行的信息?
以下是我的数据表的完整代码:
class _DataTableSampleState extends State<DataTableSample> { void _getSelectedRowInfo() { print('Selected Item Row Name Here...') } @override Widget build(BuildContext context) { return Scaffold( appBar: AppBar( title: Text('DataTable Sample'), ), body: Container( child: DataTable( onSelectAll: (b) {}, sortAscending: true, columns: <DataColumn>[ DataColumn( label: Text('Item'), ), DataColumn( label: Text('Price'), ), ], rows: items .map( (itemRow) => DataRow( cells: [ DataCell( Text(itemRow.itemName), showEditIcon: false, placeholder: false, ), DataCell( Text(itemRow.itemPrice), showEditIcon: true, placeholder: false, onTap: _getSelectedRowInfo, ), ], ), ) .toList(), ), ), ); } } class ItemInfo { String itemName; String itemPrice; ItemInfo({ this.itemName, this.itemPrice, }); } var items = <ItemInfo>[ ItemInfo( itemName: 'Item A', itemPrice: '250', ), ItemInfo( itemName: 'Item B', itemPrice: '100', ), ItemInfo( itemName: 'Item C', itemPrice: '150', ), ];
单击编辑图标时,将调用“ _getSelectedRowInfo”方法。我想在此功能中获取选定/点击的行的完整详细信息。
您可以使用DataRow中的onSelectChanged属性。
rows: items .map( (itemRow) => DataRow( onSelectChanged: (bool selected) { if (selected) { log.add('row-selected: ${itemRow.index}'); } }, cells: [ // .. ], ),