Несколько связанных с сущностью CupertinoTextFields, которые экономят на фокусе - PullRequest
0 голосов
/ 08 мая 2019

У меня есть список некоторых записей, которые я хочу редактировать при фокусировке. Я создаю 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;
        }
    );
};

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

enter image description here

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

1 Ответ

0 голосов
/ 13 мая 2019

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

...