編輯:關於Android編程
public boolean dispatchTouchEvent(MotionEvent ev){}
用於事件的分發,Android中所有的事件都必須經過這個方法的分發,然後決定是自身消費當前事件還是繼續往下分發給子控件處理。返回true表示不繼續分發,事件沒有被消費。
public boolean onInterceptTouchEvent(MotionEvent arg0){}
用於事件的處理,返回true表示消費處理當前事件,返回false則不處理,交給子控件進行繼續分發。
public boolean onTouchEvent(MotionEvent arg0){}
負責事件的攔截,返回true的時候表示攔截當前事件,不繼續往下分發,交給自身的onTouchEvent進行處理。返回false則不攔截,繼續往下傳。
舉例說明三個方法之間的傳遞關系,加入界面如下圖:
傳遞關系如下:
例:Android Viewpage禁止滑動屏幕(如果是其他view可以自定義控件,然後重寫這幾個方法)
Android事件機制是從父View傳向子View的,可以去檢測你當前子View是不是在有可滑動控件等,決定事件是否攔截,但是這個麻煩,而且並不能解決所有的問題(必須檢測觸摸點是否在這個控件上面),其實有比較簡單的方法,在你嵌套的控件中注入ViewPager實例,然後在onTouchEvent,onInterceptTouchEvent,dispatchTouchEvent裡面告訴父View,也就是ViewPager不要攔截該控件上的觸摸事件。
requestDisallowInterceptTouchEvent(true) ; true則禁止
子view中添加代碼一般如下:
public boolean onTouch(View v, MotionEvent event) {
switch (event.getAction()) {
case MotionEvent.ACTION_MOVE:
requestDisallowInterceptTouchEvent(true);
break;
case MotionEvent.ACTION_UP:
case MotionEvent.ACTION_CANCEL:
requestDisallowInterceptTouchEvent(false);
break;
}
}
當用戶按下的時候,我們告訴父組件,不要攔截我的事件(這個時候子組件是可以正常響應事件的),拿起之後就會告訴父組件可以阻止。
C中比較難的這一塊,大概就是指針了,所以大家還是多翻閱一下資料,當然,如果只是想了解一下,看本篇也就夠了,不過我也盡量陳述的很詳細一.指針 要說指針,其實通俗易懂的話來
我個人感覺安卓自帶的數據庫用的不是太多的,畢竟現在很多應用都直接和服務器數據庫進行交互,或者直接API獲取一些接口的數據,但是不可否認自帶的數據庫還是有一些作用的,所以我
由於項目需要做一個仿通訊錄搜索聯系人的功能,並且需要選中聯系人,即推薦好友的功能。所以就想寫一遍blog來介紹它是怎麼實現,以及是怎麼用的。好的,接下來,讓我為大家講解一
長久以來,C++中的內存管理問題一直讓人頭疼,空指針,野指針,內存洩露。。。。。。C++程序員看到這樣的問題就是各種頭大!這樣的問題往往很難解決,尤其是代碼架構比較龐大或