Чтобы создать средство выбора нескольких элементов во Flutter, вы можете использовать различные методы в зависимости от ваших конкретных требований. Вот несколько методов с примерами кода:
-
Использование CheckboxListTile:
List<String> selectedItems = []; List<String> itemList = ['Item 1', 'Item 2', 'Item 3', 'Item 4']; ListView.builder( itemCount: itemList.length, itemBuilder: (context, index) { String item = itemList[index]; return CheckboxListTile( title: Text(item), value: selectedItems.contains(item), onChanged: (bool value) { if (value) { setState(() { selectedItems.add(item); }); } else { setState(() { selectedItems.remove(item); }); } }, ); }, ); -
Использование ListView с флажками:
List<String> selectedItems = []; List<String> itemList = ['Item 1', 'Item 2', 'Item 3', 'Item 4']; ListView( children: itemList.map((String item) { return CheckboxListTile( title: Text(item), value: selectedItems.contains(item), onChanged: (bool value) { if (value) { setState(() { selectedItems.add(item); }); } else { setState(() { selectedItems.remove(item); }); } }, ); }).toList(), ); -
Использование MultiSelectDialog:
List<String> selectedItems = []; List<String> itemList = ['Item 1', 'Item 2', 'Item 3', 'Item 4']; FlatButton( child: Text('Select Items'), onPressed: () async { final selected = await showDialog<Set<String>>( context: context, builder: (BuildContext context) { return MultiSelectDialog( items: itemList.map((String item) { return MultiSelectItem<String>( item, item, ); }).toList(), initialSelectedValues: selectedItems.toSet(), ); }, ); if (selected != null) { setState(() { selectedItems = selected.toList(); }); } }, ); class MultiSelectDialog extends StatefulWidget { // Implementation of the dialog }
Это несколько примеров создания средства выбора нескольких элементов во Flutter. Вы можете выбрать метод, который лучше всего соответствует вашим потребностям. Не забудьте адаптировать код к вашему конкретному варианту использования.