我在屏幕底部有一个小的覆盖层,可以正常使用。但是,当自动隐藏的导航栏暂时暴露(也就是半透明)时,叠加层将不再接收运动事件。我可以在正确的底部看到它,但是导航栏会记录所有事件。我注意到有些自夸“导航手势”的应用程序能够以某种方式获取运动事件,这意味着即使暴露了导航栏,用户也可以向上滑动,而该应用程序仍将获取事件。这怎么可能?我已经尝试过所有我能想到的标志组合,但是没有任何效果。
Point screen_size = new Point();
WindowManager.LayoutParams mParams;
WindowManager mWindowManager = getSystemService(WINDOW_SERVICE);
mWindowManager.getDefaultDisplay().getRealSize(screen_size);
layout = new LinearLayout(getApplicationContext());
layout.setOnTouchListener(this);
// color for debug.
layout.setBackgroundColor(0x55ff0000);
mParams = new WindowManager.LayoutParams(
screen_size.x,
40,
0,
0,
WindowManager.LayoutParams.TYPE_APPLICATION_OVERLAY,
Wi ndowManager.LayoutParams.FLAG_LAYOUT_IN_SCREEN | WindowManager.LayoutParams.FLAG_NOT_FOCUSABLE,
PixelFormat.TRANSLUCENT);
mParams.gravity = Gravity.BOTTOM;
mWindowManager.addView(layout, mParams);