LRecyclerView側滑iOS阻塞效果不完整的解決辦法
最近項目中用到下拉刷新與側滑刪除需要同時實現(xiàn)的情形, 所以對LRecyclerView進行了一些了解, 在測試側滑功能時, 發(fā)現(xiàn)iOS阻塞效果不完整, 即當條目處于側滑狀態(tài)時, 點擊該條目的非側滑位置時無法自動關閉, 于是對LRecyclerView項目中的自定義 SwipeMenuView進行了分析, 發(fā)現(xiàn)在dispatchTouchEvent的down事件中進行了如下的條件判斷:
if (mViewCache != this) {
mViewCache.smoothClose();
mViewCache = null;
iosInterceptFlag = isIos;//add by 2016 09 11 ,IOS模式開啟的話,且當前有側滑菜單的View,且不是自己的,就該攔截事件咯。
}
這樣的判斷導致阻塞效果無法在被側滑的條目上實現(xiàn), 所以我加上了如下的條件判斷:
//如果是自己, 當按下的位置在內容的范圍, 關閉側滑菜單, 否則不攔截
if (ev.getRawX() < mScreenW - mRightMenuWidths) {
mViewCache.smoothClose();
mViewCache = null;
iosInterceptFlag = isIos;
}
最后, SwipeMenuView中完整的dispatchTouchEvent的down事件如下:
case MotionEvent.ACTION_DOWN:
iosInterceptFlag = false;//add by 2016 09 11 ,每次DOWN時,默認是不攔截的
if (isTouching) {//如果有別的指頭摸過了,那么就return false。這樣后續(xù)的move..等事件也不會再來找這個View了。
return false;
} else {
isTouching = true;//第一個摸的指頭,趕緊改變標志,宣誓主權。
}
mLastP.set(ev.getRawX(), ev.getRawY());
//如果down,view和cacheview不一樣,則立馬讓它還原。且把它置為null
if (mViewCache != null) {
if (mViewCache != this) {
mViewCache.smoothClose();
mViewCache = null;
iosInterceptFlag = isIos;//add by 2016 09 11 ,IOS模式開啟的話,且當前有側滑菜單的View,且不是自己的,就該攔截事件咯。
} else {
//如果是自己, 當按下的位置在內容的范圍, 關閉側滑菜單, 否則不攔截
if (ev.getRawX() < mScreenW - mRightMenuWidths) {
mViewCache.smoothClose();
mViewCache = null;
iosInterceptFlag = isIos;
}
}
//只要有一個側滑菜單處于打開狀態(tài), 就不給外層布局上下滑動了
getParent().requestDisallowInterceptTouchEvent(true);
}
//求第一個觸點的id, 此時可能有多個觸點,但至少一個,計算滑動速率用
mPointerId = ev.getPointerId(0);
break;
以上所述是小編給大家介紹的LRecyclerView側滑iOS阻塞效果不完整的解決辦法,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復大家的。在此也非常感謝大家對腳本之家網站的支持!
- RecyclerView實現(xiàn)側滑拖拽功能
- android RecyclerView側滑菜單,滑動刪除,長按拖拽,下拉刷新上拉加載
- Android recyclerview實現(xiàn)拖拽排序和側滑刪除
- android的RecyclerView實現(xiàn)拖拽排序和側滑刪除示例
- RecyclerView進階:使用ItemTouchHelper實現(xiàn)拖拽和側滑刪除效果
- Android實現(xiàn)多線程斷點續(xù)傳
- Android實現(xiàn)斷點續(xù)傳功能
- 詳解Android使用OKHttp3實現(xiàn)下載(斷點續(xù)傳、顯示進度)
- android實現(xiàn)多線程下載文件(支持暫停、取消、斷點續(xù)傳)
- RecyclerView實現(xiàn)側滑和網絡斷點續(xù)傳
相關文章
iOS應用開發(fā)中對UIImage進行截取和縮放的方法詳解
這篇文章主要介紹了iOS應用開發(fā)中對UIImage進行截取和縮放的方法,分別講解了如何截取指定區(qū)域大小的UIImage以及縮放到指定大小和等比縮放的具體操作過程,需要的朋友可以參考下2016-04-04
ios NSNotificationCenter通知的簡單使用
這篇文章主要介紹了ios NSNotificationCenter通知的簡單使用,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2018-06-06
IOS 使用NSAssert()和NSParameterAssert調試程序
這篇文章主要介紹了IOS 使用NSAssert()和NSParameterAssert調試程序的相關資料,需要的朋友可以參考下2017-06-06
Swift 2.1 為 UIView 添加點擊事件和點擊效果
本文主要介紹 Swift UIView,這里給大家提供代碼示例作為參考為UIView 添加點擊事件和點擊效果,希望能幫助IOS開發(fā)的同學2016-07-07

