我想在另一个应用程序的顶部显示一个按钮。以Skype为例。
我尝试制作一个具有RelativeLayout的活动,在里面我放了一个Button。但是,当Button处于可触摸状态时,我无法使RelativeLayout无法触摸。 所以我想通过在Skype打开时只显示按钮来实现这一目的。所以我可以同时使用Skype和按钮。
我尝试过的东西是:
getWindow().addFlags(WindowManager.LayoutParams.FLAG_NOT_TOUCHABLE);
但这使整个Window
无法触及(包括Button
内的RelativeLayout
我在想是否有类似的方法:
(RelativeLayout的)findViewById(R.id.relativeLayout1).makeNotTouchable() (按钮)findViewById(R.id.button1).makeTouchable();
请注意,上述方法并不存在,我只是想让您更清楚地了解我想要实现的目标。
另请注意,制作半透明活动可防止用户将触摸事件传递到其后面的活动。它可以显示它背后的活动,但我们无法通过它传递触摸事件。
答案 0 :(得分:0)
您可以通过在WindowManager LayoutParams上设置FLAG_NOT_TOUCH_MODAL来完成此操作。您还应该将活动的主题设置为@android:style / Theme.Translucent.NoTitleBar以使窗口半透明。
我忘了提到你必须改变窗口的大小。您可以使用以下示例来完成此操作:
getWindow().setGravity(Gravity.CENTER);
getWindow().setLayout(WindowManager.LayoutParams.WRAP_CONTENT, WindowManager.LayoutParams.WRAP_CONTENT);