Выбор нескольких элементов во Flutter: различные методы с примерами кода

Чтобы создать средство выбора нескольких элементов во Flutter, вы можете использовать различные методы в зависимости от ваших конкретных требований. Вот несколько методов с примерами кода:

  1. Использование 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);
          });
        }
      },
    );
    },
    );
  2. Использование 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(),
    );
  3. Использование 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. Вы можете выбрать метод, который лучше всего соответствует вашим потребностям. Не забудьте адаптировать код к вашему конкретному варианту использования.