2010-02-26 39 views
1

我有一個帶有一堆按鈕的LinearLayout。除非選擇了菜單項,否則此面板始終處於隱藏狀態。如何檢測某人是否在特定的LinearLayout之外點擊

當顯示LinearLayout時,我想檢測用戶是否在面板外的任何地方單擊,以便我可以再次隱藏它。有沒有辦法做到這一點,也許檢測焦點變化?

我已嘗試將OnFocusChangeListener添加到的LinearLayout本身(稱爲setFocusable就可以了(真)),但對焦變化監聽器永遠不會被調用。此外,我必須能夠檢測LinearLayout或其任何子項是否失去焦點。

回答

3

試試這個:

第1步:有LinearLayout手錶觸摸事件,並消耗他們

第2步:有LinearLayout表下的事情觸摸事件 - 如果它得到一個,你知道這是不是從LinearLayout,讓您關閉LinearLayout並消耗的事件,那麼也許註銷觸摸事件(或僅僅只注意他們,如果在LinearLayout是屏幕)

步驟#3 :沒有第三步......我想

+0

如果其中的某個按鈕被觸摸,LinearLayout仍然會獲得觸摸事件嗎? – synic 2010-02-26 22:18:50

+0

觸摸事件向外傳播,按照我的理解,因此,如果用戶點擊了'Button',該'Button'會作出迴應。把所有這一切都用一粒鹽,因爲我沒有嘗試過這樣的組合。 – CommonsWare 2010-02-26 22:31:38

相關問題