AlertDialog.onCreate가 호출 된 후 EditText가 추가되면이 문제가 발생합니다.
https://developer.android.com/reference/androidx/appcompat/app/AlertDialog.Builder
AlertDialog 클래스는 대화 상자의 뷰가 View.onCheckIsTextEditor ()에서 true를 반환하는지 여부에 따라 android.view.WindowManager.LayoutParams.FLAG_ALT_FOCUSABLE_IM을 자동으로 설정합니다.
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);
}
또는 DialogFragment를 사용하지 않는 경우 Dialog.setOnShowListener를 사용할 수 있습니다.
dialog.setOnShowListener(new DialogInterface.OnShowListener() {
@Override
public void onShow(DialogInterface dialog) {
getDialog().getWindow().clearFlags(WindowManager.LayoutParams.FLAG_ALT_FOCUSABLE_IM);
}
});