歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux編程 >> Linux編程 >> Android上拖放效果的實現

Android上拖放效果的實現

日期:2017/3/1 11:11:31   编辑:Linux編程

想在Android上實現拖放並沒有快捷方法,因為Android沒內嵌這個功能,只有自己動手寫。

在Android上,觸摸事件由一系列事件構成。首先,用戶將手指放在屏幕的一個元素上,該元素接收到一個ACTION_DOWN事件。然後,用戶保持手指在屏幕上,將手指移動到一個新的位置。該元素接收到一系列ACTION_MOVE事件。最後,用戶拿起手指,這時,該元素接收到一個ACTION_UP事件。

Android上的touch事件有兩個重要的特點:一.touch事件會被轉移。如果一個子控件在它的onTouchEvent句柄中返回false,它將忽略第一個事件(ACTION_DOWN),而父級的onTouchEvent舉辦將接收此事件,除非其中一個祖先控件同意處理該事件或者是事件到達根控件,不然這個激活的事件將一直被傳播;二.父級可以在子控件的onTouchEvent句柄被激活前攔截觸摸事件。可以通過重載父級的onInterceptTouchEvent方法,並返回true來實現這點。結果是,子控件的onTouchEvent句柄將被忽略,而父級的onTouchEvent將被激活。

下圖表示touch事件轉移的過程:

我們需要在父級和子級控件中設置onTouchEvent句柄。在子級句柄中,我們將子元素保存為將被拖動的項,並返回false,這樣一系列的子事件將被傳達到父級句柄。在父級句柄中,我們改變子視圖的邊來適應手指的位置,這樣子視圖就可以跟隨我們的手指移動了。

Copyright © Linux教程網 All Rights Reserved