Activity 和 Theme.Dialog 可以在用户触摸屏幕上的任何地方时被关闭,但不能与 Theme.panel

Activity with Theme.Dialog can be dismissed when user touches anywhere on screen, but not with Theme.panel

我正在尝试显示一个 activity 按钮,该按钮覆盖了屏幕的一部分,类似于对话框。

通过使用 @android:style/android:Theme.Holo.Panel,这几乎达到了我想要的效果。这不是我想要的,但是因为我希望显示 activity 时背景变暗。所以我改用这种风格:@android:style/android:Theme.Holo.Dialog.NoActionBar.

现在这看起来像我想要的,背景变暗了。但问题在于,如果用户触摸屏幕上除对话框之外的任何地方,那么 activity 就会消失。这不会发生在 Panel 主题上,用户只能通过按下按钮来关闭它。

如何防止 activity 在 Theme.Holo.Dialog 的任何触摸事件中被关闭?

你试过了吗this.setFinishOnTouchOutside(false);

This 成为你的 activity.