0

我想在另一个应用程序的顶部显示一个按钮。以 Skype 为例。

我尝试制作一个具有 RelativeLayout 的活动,并在其中放置一个按钮。但是我无法做到在 Button 是 Touchable 时,RelativeLayout 是不可触摸的。因此,我正在考虑一种方法,即在打开 Skype 时仅显示按钮。所以我可以同时使用Skype和按钮。

我尝试使用的东西是:

getWindow().addFlags(WindowManager.LayoutParams.FLAG_NOT_TOUCHABLE);

但这使得整个Window不可触摸(包括Button内部RelativeLayout

我在想是否有类似的方法:

(RelativeLayout)findViewById(R.id.relativeLayout1).makeNotTouchable() (Button)findViewById(R.id.button1).makeTouchable();

请注意,上述方法不存在,我只是想让您更清楚地了解我想要实现的目标。

另请注意,将活动设置为半透明可防止用户将触摸事件传递给其后面的活动。它可以显示它背后的活动,但我们不能通过它传递触摸事件。

4

1 回答 1

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);
于 2013-05-31T16:14:35.700 回答