如何在活动顶部显示“窗口/子活动/对话框”,但将焦点保留在活动中
问题描述:
我的活动A是一款游戏,它执行一些后台操作。当我在上下文菜单中按下按钮时,我想弹出出现在活动A之上的“小窗口/对话框/子活动”(让它称为B),并显示有关这些后台操作的一些数据。但我需要将注意力集中在活动A上,以便继续与其交互(玩游戏)。如何在活动顶部显示“窗口/子活动/对话框”,但将焦点保留在活动中
实质上,我希望能够在玩游戏时看到B的数据显示。
我不太确定如何实现这一点。在阅读文档后,我有下面的结论:
- 我知道我不能使用对话框,因为有焦点。可以避免这种情况吗?
- 使用带有对话主题的子活动,这是另一个看起来很诱人的选择......但我相信子活动有重点。同上。
- 我最后的选择是尝试添加LinearLayout和我的数据到主布局,“共享/拆分”屏幕。这并不漂亮,但至少我知道这是可能的。我不喜欢这种方法是我使用屏幕的宽度和高度。
有什么建议?解决方案?
PS:我在这里找到了一些这个线程是非常相关的,以我的问题:
答
风格Theme.Dialog
创建活动。这是一个正常的活动,看起来像一个对话框,同时是无模式的并接受事件。
附加捕获是在设置WindowManager.LayoutParams.FLAG_NOT_TOUCH_MODAL
和重置WindowManager.LayoutParams.FLAG_DIM_BEHIND
。
看到这个答案的完整的例子:timed modeless dialog
答
为什么不使用的FrameLayout那就是除了你的活动?只要确保此视图具有更高的z索引(确保在XML布局中最后声明它或在运行时创建它)。这样你永远不会离开你的活动。
你说的B有多少信息?如果B可以是被动的,为什么不使用吐司? –
我想过了,但是TOAST在X时间后消失了。此外,我想看看我的信息如何实时更改,我不认为你可以用Toast做到这一点。 – sirlion