2017-05-04 35 views
0

我想做一件簡單的事情,但目前爲止我還沒有成功:我想知道用戶何時觸摸了活動中的任何地方。檢測到我的活動已被觸動

事情是,當我做getContentView().setOnTouchListener(...);時,觸摸事件被子視圖佔用,並且只有當我觸摸到我的活動中的任何視圖之外才觸發。

有沒有不涉及擴展內容視圖類的解決方案?

謝謝!

+0

也許http://stackoverflow.com/a/16233887/5552022 –

+0

拿看看http://jhshi.me/2014/11/09/monitor-screen-touch-event-in-android/ –

+1

爲什麼不重寫'Activity'的'onDispatchTouchEvent()'? – Abbas

回答

0

你可以試試這個:

boolean touched = false; 

@Override 
public boolean onTouch(View v, MotionEvent event) { 
    touched=true; 
    Log.e("Toched ","Anywhere"); 

    return touched; 
} 
+0

我應該把這個放在哪裏? 'Activity' – natinusala

+0

中不存在'onTouch'方法,您必須將觸摸監聽器應用於根佈局。之後,您可以重寫此方法。 –

+0

這不工作,如我的OP所述,孩子的意見接管了根佈局事件 – natinusala

1

dispatchTouchEvent(MotionEvent ev) 

方法試試這個代碼

@Override 
public boolean onTouchEvent(MotionEvent event) { 
    return super.onTouchEvent(event); 
}