RecyclerView仿ios左滑刪除的輕量級(jí)實(shí)現(xiàn)

? ? ? ?項(xiàng)目中碰到RecyclerView左滑刪除的需求,網(wǎng)上找了一圈,感覺(jué)都不太合適。大部分都往大而全的方向走,提供的庫(kù)都比較大,而且都重寫(xiě)了RecyclerView、需要繼承特定的adapter等等之類(lèi)的問(wèn)題,使用起來(lái)稍顯麻煩。有些使用簡(jiǎn)單,但是達(dá)不到理想的效果,例如與下拉刷新或者RecyclerView自身存在一些滑動(dòng)沖突,不能像QQ或者網(wǎng)易郵箱那樣一次只能滑開(kāi)一個(gè)item。所以,只能自己寫(xiě)了。

效果圖如下:


? ? ? ?效果上,具體效果參考了QQ和網(wǎng)易郵箱,比較以后,還是認(rèn)為QQ的好點(diǎn),實(shí)現(xiàn)部分以QQ效果為參照。支持多點(diǎn)觸控,就像QQ一樣一次只有一個(gè)item被滑開(kāi)。使用上,不需要重寫(xiě)RecyclerView,不需要繼承特定的adapter,總之簡(jiǎn)簡(jiǎn)單單,一個(gè)類(lèi)文件一行代碼即可。與SwipeRefreshLayout無(wú)沖突,測(cè)試過(guò)沒(méi)發(fā)現(xiàn)滑動(dòng)方面的問(wèn)題。

? ? ? 項(xiàng)目地址https://github.com/fornana/swipeitemlayout,使用只需要兩步:

1、SwipeItemLayout拷貝到項(xiàng)目里

2、調(diào)用addOnItemTouchListener(new SwipeItemLayout.OnSwipeItemTouchListener(this))

? ? ? ?至于item布局方面,與DrawerLayout一樣的做法。以SwipeItemLayout為root view,然后添加一個(gè)group,作為主要內(nèi)容,再添加第二個(gè)group,作為菜單按鈕部分。點(diǎn)擊事件、長(zhǎng)按事件以及view的點(diǎn)擊效果等,將item中的children當(dāng)做一個(gè)普通的view來(lái)對(duì)待就可以了。直接setOnClickListener、setOnLongClickListener,點(diǎn)擊效果用drawable設(shè)置background即可。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容