Tsudzukeru
@Tsudzukeru

Почему при нажатии EditText иногда не подгружается клавиатура?

Есть простой фрагмент с EditText в центре. При нажатии на EditText, View получает фокус и начинает мигать курсор, затем подгружается клавиатура, но иногда клавиатура не подгружается даже если EditText получил фокус и начал мигать курсор. Это случается даже с дефолтным EditText, добавленным из Design Palette.
Например вот с таким.
<EditText
        android:id="@+id/editTextTextPersonName"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:ems="10"
        android:inputType="textPersonName"
        android:text="Name"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toBottomOf="@+id/inputTextField" />


Почему так происходит?
  • Вопрос задан
  • 106 просмотров
Решения вопроса 1
Tsudzukeru
@Tsudzukeru Автор вопроса
В чем проблема так и не понял, но нашел рабочее решение.
Нужно в отдельном потоке вручную вызывать клавиатуру всякий раз когда меняется фокус на EditText.
editText.setOnFocusChangeListener(new OnFocusChangeListener() {
    @Override
    public void onFocusChange(final View v, final boolean hasFocus) {
        if (hasFocus && editText.isEnabled() && editText.isFocusable()) {
            editText.post(new Runnable() {
                @Override
                public void run() {
                    final InputMethodManager imm = (InputMethodManager)context.getSystemService(Context.INPUT_METHOD_SERVICE);
                    imm.showSoftInput(editText,InputMethodManager.SHOW_IMPLICIT);
                }
            });
        }
    }
});
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы