如何在Activity上显示“窗口/子活动/对话框”,但将焦点保持在Activity中

时间:2011-11-03 18:09:38

标签: java android android-activity dialog subactivity

我的活动A是游戏,它会执行一些后台操作。当我在上下文菜单中按下一个按钮时,我想弹出一个出现在活动A顶部的“小窗口/对话框/子活动”(让我们称之为B)并显示一些有关这些后台操作的数据。但我需要将注意力集中在活动A上,以便继续与之交互(玩游戏)。

从本质上讲,我希望能够在玩游戏时看到B的数据显示。

我不确定如何实现这一点。阅读完文档后,我得出了下一个结论:

  • 我知道我不能使用Dialogs,因为它有焦点。有可能避免这种情况吗?
  • 使用具有Dialog主题的子活动,这是另一个看起来很诱人的选项......但我相信子活动具有焦点。同上。
  • 我的最后一个选择是尝试将包含我的数据的LinearLayout添加到主布局,“共享/拆分”屏幕。它不漂亮,但至少我知道这是可能的。我不喜欢这种方法的是我使用屏幕的宽度和高度。

有什么建议吗?溶液

PS:我在这里发现了一些与我的问题非常相关的帖子:

2 个答案:

答案 0 :(得分:0)

创建样式为Theme.Dialog的活动。这是一个看似对话的普通活动,同时是无模式和接受事件。

其他问题是设置WindowManager.LayoutParams.FLAG_NOT_TOUCH_MODAL并重置WindowManager.LayoutParams.FLAG_DIM_BEHIND

请参阅此答案以获取完整示例:timed modeless dialog

答案 1 :(得分:0)

为什么不使用与您的活动不同的FrameLayout?只需确保此View具有更高的z索引(确保在XML布局中将其声明为最后一个或在运行时创建它)。这样你永远不会离开你的活动。