Как использовать кнопки раскрывающегося списка настраиваемых типов данных во флаттере? - PullRequest
0 голосов
/ 29 мая 2020

Я хочу сделать drop-downlistbutton , но его список должен состоять из элементов enum . Теперь я попытался изменить тип, но он показал ошибку, теперь я знаю, что могу делать со строками а позже используйте if-else, но, очевидно, сделают код длинным, поэтому есть ли способ изменить строку на тип данных перечисления.

1 Ответ

1 голос
/ 29 мая 2020

Да, вы легко можете это сделать. Просто укажите тип данных, который вы хотите использовать, здесь мы используем DropdownButton<CustomType>

enum CustomType { TYPE1, TYPE2, TYPE3 }

DropdownButton<CustomType>(
  onChanged: (value) => print(value),
  items: [
    DropdownMenuItem(
      child: Text("TYPE 1"),
      value: CustomType.TYPE1,
    ),
    DropdownMenuItem(
      child: Text("TYPE 2"),
      value: CustomType.TYPE2,
    ),
    DropdownMenuItem(
      child: Text("TYPE 3"),
      value: CustomType.TYPE3,
    ),
  ],
)

Перебор значений перечисления

DropdownButton<CustomType>(
  onChanged: (value) => print(value),
  items: CustomType.values
      .map((type) => DropdownMenuItem(
            child: Text(type.toString().split('.')[1]),
            value: type,
          ))
      .toList(),
)

Надеюсь, это то, что вы ищете.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...