Как разрешить EditText InputType, видимый как нулевой, хотя он указан - PullRequest
0 голосов
/ 19 января 2019

Даже если для полей EditText указан inputType, при выборе поля курсор на экране начинает мигать, а затем исчезает. Неправильная клавиатура также показана, и журналы указывают, что она считает inputType нулевым. Как ни странно, если я нажму на поле примерно на полсекунды, оно будет работать как положено.

Это для ввода данных в форму, которая генерируется на основе файла JSON. Он работал без проблем ранее, но сломался где-то по пути. Часть меня задается вопросом, является ли это ошибкой эмулятора, как она, казалось, началась после обновления эмулятора. Пример XML приведен ниже. В этом случае это для ввода номера, но это также влияет на другие inputTypes.

<EditText
    android:layout_width="30dp"
    android:layout_height="50dp"
    android:layout_weight="1"
    android:paddingStart="15dp"
    android:paddingEnd="15dp"
    android:paddingTop="15dp"
    android:paddingBottom="15dp"
    android:inputType="numberDecimal|numberSigned"
    android:background="@drawable/form_entry_text_back"
    android:id="@+id/number_entry"
    tools:ignore="Autofill,LabelFor" />

Ожидаемое: Нажатие на поле приводит к фокусированию поля видимым курсором. Он также отображает правильный тип клавиатуры

Фактический: Автозаполнение пользовательского интерфейса над клавиатурой на короткое время мигает на экране. Клавиатура показана, но это не всегда правильный тип. В поле EditText нет курсора. Наряду с этим я получаю следующие 3 строки журнала

01-19 11:41:38.300 1963-1963/com.android.inputmethod.latin I/LatinIME: Starting input. Cursor position = 0,0
01-19 11:41:38.377 1963-1963/com.android.inputmethod.latin I/LatinIME: Starting input. Cursor position = -1,-1
01-19 11:41:38.394 1963-1963/com.android.inputmethod.latin I/InputAttributes: InputType.TYPE_NULL is specified

Это единственные показанные строки журнала

Обход: Если я нажимаю и удерживаю щелчок чуть дольше, чем обычно, он работает точно так же, как и ожидалось.

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