Проверка и отмена проверки элементов строки в Flutter - PullRequest
0 голосов
/ 23 января 2020

Я хочу 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()),
                  ),
                );
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...