Я хочу DataTable с флажками в каждой строке. Я использовал для этого свойства select и onSelectChange, но я не понимаю, как реализовать это из документации . В идеале, каждый раз, когда выбирается строка, эта строка добавляется в список _selected. Если строка не выбрана, она удаляется из _selected. Выбор невыбранной строки делает ее выбранной, а выбор уже выбранной строки делает невыбранной. Я немного запутался в том, как использовать эти два свойства и как они работают вместе. Прямо сейчас, если я выбираю строку, проверяется каждая строка. Если я отменяю выбор строки, каждая строка не выбирается. Как заставить это работать только с проверенной строкой?
return SingleChildScrollView(
scrollDirection: Axis.vertical,
child: SingleChildScrollView(
scrollDirection: Axis.horizontal,
child: DataTable(
columns: data.first.keys
.map((dynamic keys) => DataColumn(label: Text(keys.toString())))
.toList(),
rows: data.map((map) {
return DataRow(
selected: _isSelected, //set to false in initState()
onSelectChanged: (bool selected) async {
if (selected) {
setState(() {
_selected.add(map);
_isSelected = selected;
});
} else {
setState(() {
_selected.remove(map);
_isSelected = selected;
});
}
},
cells: map.values.map((dynamic val) => DataCell(Text(val.toString()))).toList());
}).toList()),
),
);