Вопросы

CupertinoPicker не может вернуть текст из выбранного значения

Я ожидаю, что текстовое поле будет отображать A / B / и т. Д. При выборе, однако оно возвращает только индекс 0/1/2 / …, почему ???

полный код виджета ниже:

ОБНОВЛЕНО:

  int selectedValue;

  Future showPicker() async {
    showModalBottomSheet(
        context: context,
        builder: (BuildContext context) {
          return CupertinoPicker(
            backgroundColor: Colors.white,
            scrollController: FixedExtentScrollController(initialItem: 3),
            onSelectedItemChanged: (value) {
              setState(() {
                if (value != null) {
                  selectedValue = listTextValues[value];
                  regionController.value = TextEditingValue(text: selectedValue.toString());
                }
              });
            },
            itemExtent: 32.0,
            children: const listTextValues = [
              Text('Eastern'),
              Text('South'),
              Text('West'),
              Text('North'),
              Text('Island'),
            ],
          );
        }
        );

  }

Код ниже работает, просто задайтесь вопросом, как упростить код, поскольку я использую 2 списка, один для средства выбора и один для сопоставления индекса.

Решение:

    int selectedValue;
  final List<String> listTextValues = ['Eastern', 'South', 'West', 'North', 'Island'];

  Future showPicker() async {
    showModalBottomSheet(
        context: context,
        builder: (BuildContext context) {
          return CupertinoPicker(
            backgroundColor: Colors.white,
            scrollController: FixedExtentScrollController(initialItem: 3),
            onSelectedItemChanged: (value) {
              setState(() {
                if (value != null) {
                  selectedValue = value;
                  regionController.value = TextEditingValue(text: listTextValues[selectedValue].toString());
                }
              });
            },
            itemExtent: 32.0,
            children: const [
              Text('Eastern'),
              Text('South'),
              Text('West'),
              Text('North'),
              Text('Island'),
            ],
          );
        }
        );

  }
Читать:
Интернационализация Flutter (i18n) 101

Похожие записи

flutter: как получить полезную нагрузку push-уведомления из источника, отличного от firebase

admin

Препроцессор GCC не работает? Время компиляции больших файлов с комментариями или без них

admin

Дамп базы данных mysql в резервную копию открытого текста (CSV) из командной строки

admin

Импорт s3 Bucket в шаблон Cloudformation

admin

Не удалось установить соединение с SQL Server 2019

admin

Как я могу обнаружить столкновение этих прямоугольных объектов?

admin