我正在构建一个应用程序,其中我使用WindowManager在用户之前所做的任何操作之上覆盖菜单。我将两个按钮添加为WindowManager的视图,并使用LayoutParams选择了它们的大小。但是,只有添加到WindowManager的最后一个按钮可以单击,但是我不确定为什么会这样。有谁知道我可以减少第二个按钮的可点击区域,以便第一个按钮也可以单击?
按钮B似乎可以单击整个屏幕,而按钮A似乎没有可以单击的地方。
为进一步了解上下文,此WindowManager是ASyncTask的一部分,每500毫秒运行一次。
buttonA = (Button) findViewById(R.id.buttonA);
buttonA.setBackgroundColor(0xBB000000);
((ViewGroup)buttonA.getParent()).removeView(buttonA);
buttonB = (Button) findViewById(R.id.buttonB);
buttonB.setBackgroundColor(0xBB000000);
((ViewGroup)buttonB.getParent()).removeView(buttonB);
windowManager3 = (WindowManager) getSystemService(WINDOW_SERVICE);
windowManager3.getDefaultDisplay().getSize(size);
params3 = new WindowManager.LayoutParams();
params3.width = 800;
params3.height = 500;
params3.format = PixelFormat.TRANSLUCENT;
params3.gravity = Gravity.CENTER | Gravity.CENTER;
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
params3.type = WindowManager.LayoutParams.TYPE_APPLICATION_OVERLAY;
}
else {
params3.type = WindowManager.LayoutParams.TYPE_PHONE;
}
params3.y = 0;
params3.height = 200;
windowManager3.addView(coopUI, params3);
params3.gravity = Gravity.CENTER | Gravity.LEFT;
params3.y = 200;
params3.height = 150;
params3.width = 400;
params3.x = 130;
windowManager3.addView(buttonA, params3);
params3.x = 550;
windowManager3.addView(buttonB, params3);
<Button
android:id="@+id/buttonB"
android:layout_width="145dp"
android:layout_height="85dp"
android:layout_marginStart="8dp"
android:text="Takeover"
android:textColor="@android:color/background_light"
app:layout_constraintStart_toStartOf="parent"
tools:layout_editor_absoluteY="459dp" />
<Button
android:id="@+id/buttonA"
android:layout_width="145dp"
android:layout_height="85dp"
android:layout_marginEnd="8dp"
android:text="Yes"
android:textColor="@android:color/background_light"
app:layout_constraintEnd_toEndOf="parent"
tools:layout_editor_absoluteY="459dp" />