2013-03-28 37 views
4

有人可以幫助我獲得WindowManager.LayoutParams組合,該組合可以將事件傳遞到TYPE_SYSTEM_ALERT或類似覆蓋類型(位於每個其他窗口的頂部)的圖層中。WindowManager.LayoutParams組合可以將事件傳遞給TYPE_SYSTEM_ALERT下的圖層或者相似的

問題: 我的問題是,當窗口類型TYPE_SYSTEM_ALERT獲取焦點時,它停止將運動事件傳遞給其下的其他應用程序。

示例代碼

WindowManager.LayoutParams params = new WindowManager.LayoutParams(
     WindowManager.LayoutParams.TYPE_SYSTEM_ALERT, 
     WindowManager.LayoutParams.FLAG_NOT_FOCUSABLE | 
     WindowManager.LayoutParams.FLAG_NOT_TOUCHABLE | 
     WindowManager.LayoutParams.FLAG_LAYOUT_IN_SCREEN, 
     PixelFormat.TRANSLUCENT); 

要求: 我需要的是留在所有其他窗口的頂部TYPE_SYSTEM_ALERT或類似的覆蓋類型,也得到運動事件以及經過運動事件到頂層下的任何覆蓋層(可能是TYPE_SYSTEM_ALERT)。

我需要它停留在所有其他窗口之上,因爲我需要在所有窗口上繪製圖像而不中斷運動事件。

回答

0

那麼從文檔,它說:

TYPE_SYSTEM_ALERT - 窗口類型:系統窗口,如低功耗 警報。這些窗口始終位於應用程序窗口之上。在 多用戶系統僅在擁有用戶的窗口中顯示。

鏈接在這裏:https://developer.android.com/reference/android/view/WindowManager.LayoutParams.html#TYPE_SYSTEM_ALERT

我測試了這一點,並表示該意見顯示在幾乎一切(包括由於Android 6.0許可對話框)的頂部 - 使他們失去焦點。鍵盤保護層仍然保持最佳狀態。是的,您可能會失去視圖上的focusable屬性,但您可能會處理觸摸偵聽器中的所有內容。例如,看看這個帖子:How to use View.OnTouchListener instead of onClick

相關問題