2011-04-12 1 views
1

Я установил флаг 'FLAG_NOT_TOUCH_MODAL' для диалога. Таким образом, при запуске диалога я могу взаимодействовать с другими элементами в макете.как обращаться с изменением foucs для диалога

Но когда я коснулся наружу, я хочу получить изменение фокуса. Я не мог найти 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 моего пользовательского диалога.

ответ

1

Вы можете использовать один и тот же флаг для диалога, как ниже я.

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(); 

Это позволит вам сменить фокус. Попробуйте это, я надеюсь, что у вас будут плодотворные результаты. Благодарю.

Смежные вопросы