Несколько связанных с сущностью CupertinoTextFields, которые экономят на фокусе

У меня есть список некоторых записей, которые я хочу отредактировать. Я создаю FocusNode для каждой записи, CupertinoTextField для каждой записи тоже.

var textField = (UserMotivator um) {
    var controller;
    var focusNode = new FocusNode();
    focusNode.addListener(() {
        if (!focusNode.hasFocus) {
            post(um);
        }
    });

    var controller = TextEditingController(text: um.text);

    return CupertinoTextField(
        focusNode: focusNode,
        controller: controller,
        onChanged: (String value) {
            um.text = value;
        }
    );
};

По какой-то странной причине в симуляторе (не тестированном на реальном устройстве), когда я нажимаю на многие из этих текстовых полей, я получаю следующее:

Как привязать фокус даже к TextField, не используя FocusNode / без мигания всех этих курсоров?

1 ответ

Решение

Таким образом, я решил проблему, я думаю. Причина, по которой он был глючным, заключалась в том, что я был на v1.1.8, после обновления до v1.5.4 он как-то исправился, не был идеальным, но был лучше. После того как я переехал FocusNodes создание кода формы сборки для initState метод это стало еще лучше, но курсор все еще мигал в начале TextField, Это было потому, что я позвонил setState в onChange обработчик, который каким-то образом заставил TextField перерисовать и действовать так странно.

Другие вопросы по тегам