Я установил для этого диалогового окна флаг FLAG_NOT_TOUCH_MODAL. Так что при запуске диалога я могу взаимодействовать с другими элементами в макете.
Но когда я коснулся снаружи, я хочу получить изменение фокуса. Я не мог найти setFocusable (true) api для диалога или установить прослушиватели фокуса для диалога.
Может ли кто-нибудь сказать мне, как получить, когда фокус входит/выходит из диалога.?
requestWindowFeature(Window.FEATURE_NO_TITLE);
Window window = this.getWindow();
window.setFlags(WindowManager.LayoutParams.FLAG_NOT_TOUCH_MODAL,
WindowManager.LayoutParams.FLAG_NOT_TOUCH_MODAL);
window.clearFlags(WindowManager.LayoutParams.FLAG_DIM_BEHIND);
Это свойства, которые я задал для окна, в cstr
моего настраиваемого диалога.
Вы можете использовать тот же флаг для диалогового окна, как показано ниже.
Dialog mDialog = new Dialog(CustomKeyboardNotLikeAndroidActivity.this, R.style.PauseDialog);
mDialog.setContentView(R.layout.keyboard);
mDialog.getWindow().getAttributes().windowAnimations = R.style.PauseDialogAnimation;
mDialog.getWindow().setFlags(WindowManager.LayoutParams.FLAG_NOT_TOUCH_MODAL, WindowManager.LayoutParams.FLAG_NOT_TOUCH_MODAL);
mDialog.setCancelable(true);
mDialog.show();
Это позволит вам изменить фокус. Попробуйте это, я надеюсь, что у вас будут плодотворные результаты. Спасибо.