Несколько мигающих курсоров в одной форме - PullRequest
1 голос
/ 31 мая 2019

У меня есть несколько мигающих курсоров во всех текстовых полях в одной форме.Все они мигают, независимо от того, в каком текстовом поле я набираю текст.

Это происходит в Simulator, Android, iOS и Javascript.

Я не могу создать тестовый пример:все мои тестовые случаи в порядке, это ошибочное поведение присутствует только в моем приложении после изменения формы и состояния редактирования.

Можете ли вы дать мне какой-нибудь совет, чтобы понять / исследовать / решить эту проблему?

Спасибо

1 Ответ

1 голос
/ 31 мая 2019

Обновленный ответ

Мой старый ответ содержал только временный обходной путь (field.setCursorBlinkTimeOff(1000 * 3600); для всех TextField с), который имеет несколько проблем, которые создают плохо используемый опыт.

Теперь я нашел правильное решение, то есть просто не использовать один и тот же TextField s (удалив его из «Контейнера А», имеющего компонент «Лидер», и поместив их в другой «Контейнер Б»). который не имеет компонента Leader) . Эта проблема связана с тем, что «Контейнер А» имеет компонент «Лидер».

Итак, в этом случае мое решение состоит в том, чтобы удалить TextFields из «Контейнера A» и добавить новые TextFields в «Container» B, используя метод, подобный следующему:

private Component replaceWithNewTextField(Component cmp) {
        if (cmp instanceof TextField) {
            // it creates the new TextField
            TextField field = new TextField();
            field.setUIID(cmp.getUIID());
            field.setText(((TextField) cmp).getText());
            field.setName(((TextField) cmp).getName());
            field.setEditable(((TextField) cmp).isEditable());
            ((TextArea) field).setSingleLineTextArea(((TextArea) cmp).isSingleLineTextArea());
            ((TextArea) field).setRows(((TextArea) cmp).getRows());
            ((TextArea) field).setConstraint(((TextArea) cmp).getConstraint());

            etc. 
...