2012-07-24 34 views

回答

13

理解視圖堆疊的一種非常簡單的方法是拍攝一本書(任何一本書)。將每個頁面視爲一個視圖。

能見度

  • 當你打開這本書,你可以看到一個頁面(主視圖 - VISIBLE
  • 當您關閉當前頁面,您可以參照下頁(INVISIBLE - 主視圖,顯示下一個視圖。記住,你只是躲在認爲,如果能見度設置爲GONE這相當於當前頁面可以查看下一個頁面的撕裂。)

觸摸場景

  • 假設你的第一個頁面是蠟頁面(半透明頁面類似的半透明視圖),所以你可以看到下面的頁面
  • 當您嘗試觸摸在第二頁上的人物,你是接觸第一雖然你可以看到第二頁上的圖。通過第一頁觸摸第二頁上的圖形是不可能的。

不要氣餒,因爲這是你會被處理,而不是一紙你仍然可以做你想做的事:)

  • 實現View.OnTouchListener爲您的意見
  • 視圖
  • 對於半透明視圖,您將獲得任何觸摸事件,並在方法中返回FALSEonTouch
  • Android會將touch事件傳遞給您的基礎視圖。
+0

非常感謝您深思熟慮的答案!這有助於我更好地理解視圖。如果底層視圖是Android主屏幕或其他應用程序,這將工作嗎?如果底層視圖不是我自己的,它會以不同的方式工作嗎?我現在嘗試把getWindow()。addFlags(WindowManager.LayoutParams.FLAG_NOT_TOUCHABLE);在我的應用程序的onCreate方法。當我滑動時,我看不到主屏幕下方的更新,但當我退出我的應用程序時,主屏幕已向我的滑動方向移動。 – user1549332 2012-07-24 17:40:29

12

我得到了答案。 在onCreate中添加行getWindow().addFlags(WindowManager.LayoutParams.FLAG_NOT_TOUCHABLE); 第二個頂級活動(這是透明的做法)。

以上解決方案存在問題。使用上面的整個窗口後,觸摸背景。所以如果你想完全控制,那麼最好擴展一個佈局,例如Framelayout並重寫'onTouchEvent',並使用event.getX()和event.getY()方法獲取觸摸位置,並在想要傳遞觸摸事件的位置返回false。它將被傳遞給父視圖。

+2

太好了。這允許透明活動也影響「桌面\家」 – shaydel 2014-03-01 09:21:11

相關問題