使用WindowManager.LayoutParams.TYPE_SYSTEM_OVERLAY向窗口添加视图时,它没有获得触摸事件

pat*_*007 3 android android-layout

我需要在拨号器应用程序的顶部显示我的视图,所以我使用TYPE_PHONE这个目的是可触摸的,但仍然在某些设备上,如Nexus 5拨号设备应用程序隐藏它.

尝试使用TYPE_SYSTEM_OVERLAY使视图在拨号器应用程序顶部可见,但触摸不存在.对此有任何帮助都会很棒.

pat*_*007 10

经过大量的搜索以上问题,我找到了解决方案.这就是我如何使视图处于设备内部的所有内容并使其成为可触摸的,这是TYPE_SYSTEM_OVERLAY无法实现的.

WindowManager.LayoutParams params = new WindowManager.LayoutParams(
                        WindowManager.LayoutParams.MATCH_PARENT,
                        WindowManager.LayoutParams.WRAP_CONTENT,
                        WindowManager.LayoutParams.TYPE_SYSTEM_ERROR,
                        WindowManager.LayoutParams.FLAG_NOT_FOCUSABLE |
                                WindowManager.LayoutParams.FLAG_LAYOUT_IN_SCREEN,
                        PixelFormat.TRANSPARENT);

params.gravity = Gravity.TOP | Gravity.CENTER_HORIZONTAL;
WindowManager wm = (WindowManager) getSystemService(WINDOW_SERVICE);
wm.addView(view, params);
Run Code Online (Sandbox Code Playgroud)