Sự cố này xảy ra khi EditText được thêm vào sau khi AlertDialog.onCreate được gọi.
https://developer.android.com/reference/androidx/appcompat/app/AlertDialog.Builder
Lớp AlertDialog đảm nhận việc tự động thiết lập android.view.WindowManager.LayoutParams.FLAG_ALT_FOCUSABLE_IM cho bạn dựa trên việc bất kỳ chế độ xem nào trong hộp thoại trả về true từ View.onCheckIsTextEditor ().
Bạn cần xóa cờ FLAG_ALT_FOCUSABLE_IM.
getWindow().clearFlags(WindowManager.LayoutParams.FLAG_ALT_FOCUSABLE_IM);
Vì AlertDialog.show được gọi trong DialogFragment.onStart, bạn có thể chèn mã vào DialogFragment.onStart.
@Override
public void onStart() {
super.onStart();
getDialog().getWindow().clearFlags(WindowManager.LayoutParams.FLAG_ALT_FOCUSABLE_IM);
}
Hoặc bạn có thể sử dụng Dialog.setOnShowListener nếu bạn không sử dụng DialogFragment.
dialog.setOnShowListener(new DialogInterface.OnShowListener() {
@Override
public void onShow(DialogInterface dialog) {
getDialog().getWindow().clearFlags(WindowManager.LayoutParams.FLAG_ALT_FOCUSABLE_IM);
}
});