用于检测dispatchKeyEvent()的Android WindowManager.Layoutparams.flags

时间:2013-06-20 19:15:15

标签: android window-managers

我有一个自定义View,它扩展了RelativeLayout,我使用WindowManager.addView()方法将其添加到屏幕,并使用以下布局参数标记

final int flags =WindowManager.LayoutParams.FLAG_NOT_FOCUSABLE |WindowManager.LayoutParams.FLAG_NOT_TOUCH_MODAL|WindowManager.LayoutParams.FLAG_WATCH_OUTSIDE_TOUCH;

dispatchKeyEvent()在CustomView类中被重写,但是当我按下后退按钮时,它被调用后没有被调用。

如果我从标志中删除WindowManager.LayoutParams.FLAG_NOT_FOCUSABLE,则会调用dispatchKeyEvent(),但我无法检测customView中的触摸事件。

请建议标记组合,我的customView既可以检测触摸和按键事件,也可以在视图外触摸

如果这是重复的,请转发我的帖子。

1 个答案:

答案 0 :(得分:0)

找到答案,只需动态添加焦点标志。当您的视图为Visible时,添加焦点标志。当其不可见时删除标志以将触摸事件发送到其他视图。

相关问题