Ця проблема виникає, коли EditText додається після виклику AlertDialog.onCreate.
https://developer.android.com/reference/androidx/appcompat/app/AlertDialog.Builder
Клас AlertDialog піклується про автоматичне встановлення для вас android.view.WindowManager.LayoutParams.FLAG_ALT_FOCUSABLE_IM на основі того, чи повертаються будь-які погляди в діалоговому вікні з View.onCheckIsTextEditor ().
Потрібно очистити прапор FLAG_ALT_FOCUSABLE_IM.
getWindow().clearFlags(WindowManager.LayoutParams.FLAG_ALT_FOCUSABLE_IM);
Оскільки AlertDialog.show викликається в DialogFragment.onStart, ви можете вставити код у DialogFragment.onStart.
@Override
public void onStart() {
super.onStart();
getDialog().getWindow().clearFlags(WindowManager.LayoutParams.FLAG_ALT_FOCUSABLE_IM);
}
Або ви можете використовувати Dialog.setOnShowListener, якщо ви не використовуєте DialogFragment.
dialog.setOnShowListener(new DialogInterface.OnShowListener() {
@Override
public void onShow(DialogInterface dialog) {
getDialog().getWindow().clearFlags(WindowManager.LayoutParams.FLAG_ALT_FOCUSABLE_IM);
}
});