2011-11-03 89 views
2

我的活動A是一款遊戲,它執行一些後臺操作。當我在上下文菜單中按下按鈕時,我想彈出出現在活動A之上的「小窗口/對話框/子活動」(讓它稱爲B),並顯示有關這些後臺操作的一些數據。但我需要將注意力集中在活動A上,以便繼續與其交互(玩遊戲)。如何在活動頂部顯示「窗口/子活動/對話框」,但將焦點保留在活動中

實質上,我希望能夠在玩遊戲時看到B的數據顯示。

我不太確定如何實現這一點。在閱讀文檔後,我有下面的結論:

  • 我知道我不能使用對話框,因爲有焦點。可以避免這種情況嗎?
  • 使用帶有對話主題的子活動,這是另一個看起來很誘人的選擇......但我相信子活動有重點。同上。
  • 我最後的選擇是嘗試添加LinearLayout和我的數據到主佈局,「共享/拆分」屏幕。這並不漂亮,但至少我知道這是可能的。我不喜歡這種方法是我使用屏幕的寬度和高度。

有什麼建議?解決方案?

PS:我在這裏找到了一些這個線程是非常相關的,以我的問題:

+0

你說的B有多少信息?如果B可以是被動的,爲什麼不使用吐司? –

+0

我想過了,但是TOAST在X時間後消失了。此外,我想看看我的信息如何實時更改,我不認爲你可以用Toast做到這一點。 – sirlion

回答

0

風格Theme.Dialog創建活動。這是一個正常的活動,看起來像一個對話框,同時是無模式的並接受事件。

附加捕獲是在設置WindowManager.LayoutParams.FLAG_NOT_TOUCH_MODAL和重置WindowManager.LayoutParams.FLAG_DIM_BEHIND

看到這個答案的完整的例子:timed modeless dialog

+0

謝謝!我要去嘗試一下。快速問題:你知道在使用這種方法時,主要活動的onPause()方法是否被調用?這也是至關重要的......謝謝! – sirlion

+0

我很確定這裏會調用onPause()方法。儘管如此,測試會很容易。祝你好運! – groomsy

0

爲什麼不使用的FrameLayout那就是除了你的活動?只要確保此視圖具有更高的z索引(確保在XML佈局中最後聲明它或在運行時創建它)。這樣你永遠不會離開你的活動。