我想做一件簡單的事情,但目前爲止我還沒有成功:我想知道用戶何時觸摸了活動中的任何地方。檢測到我的活動已被觸動
事情是,當我做getContentView().setOnTouchListener(...);
時,觸摸事件被子視圖佔用,並且只有當我觸摸到我的活動中的任何視圖之外才觸發。
有沒有不涉及擴展內容視圖類的解決方案?
謝謝!
我想做一件簡單的事情,但目前爲止我還沒有成功:我想知道用戶何時觸摸了活動中的任何地方。檢測到我的活動已被觸動
事情是,當我做getContentView().setOnTouchListener(...);
時,觸摸事件被子視圖佔用,並且只有當我觸摸到我的活動中的任何視圖之外才觸發。
有沒有不涉及擴展內容視圖類的解決方案?
謝謝!
你可以試試這個:
boolean touched = false;
@Override
public boolean onTouch(View v, MotionEvent event) {
touched=true;
Log.e("Toched ","Anywhere");
return touched;
}
我應該把這個放在哪裏? 'Activity' – natinusala
中不存在'onTouch'方法,您必須將觸摸監聽器應用於根佈局。之後,您可以重寫此方法。 –
這不工作,如我的OP所述,孩子的意見接管了根佈局事件 – natinusala
dispatchTouchEvent(MotionEvent ev)
方法試試這個代碼
@Override
public boolean onTouchEvent(MotionEvent event) {
return super.onTouchEvent(event);
}
也許http://stackoverflow.com/a/16233887/5552022 –
拿看看http://jhshi.me/2014/11/09/monitor-screen-touch-event-in-android/ –
爲什麼不重寫'Activity'的'onDispatchTouchEvent()'? – Abbas