RecyclerView 側滑刪除實現 一

2021-09-03 05:54:43 字數 810 閱讀 3006

前段時間因為專案需求,實現乙個側滑刪除的功能,就自己實現了乙個。這篇部落格要介紹的是側滑的一些基礎知識,也是在實際的開發過程中,較難以理解的部分。

一.關於view 的 scrollto, getscrollx 和 getscrolly

當利用 scroller 去滑動螢幕或者擴充套件 scrollview 的時候,總是會用到 getscrollx 和 getscrolly 去獲取當前view 滑動到的位置,那麼getscrollx() 和 getscrolly() 獲取的到底是什麼呢? 

由於getscrollx 和 getscrolly 本質 上是一樣的東西,下面只說明一下getscrollx, 一般是在螢幕上面左右划動的時候會去獲取這個值。

如上圖所示,紅色的框,其實就是我們眼睛看到的手機介面,就是乙個視窗。

而綠色的長方體呢,就是一塊可以左右拉動的幕布啦,其實也就是我們要顯示在視窗上面的內容,它其實是可以很大的,大到無限大,只是沒在視窗中間的,所以我們就看不到。

而getscrollx 其實獲取的值,就是這塊 幕布在視窗左邊界時候的值了,而幕布上面哪個點是原點(0,0)呢?就是初始化時內容顯示的位置。

所以當我們將幕布往右推動的時候,幕布在視窗左邊界的值就會在0的左邊(-100),而向左推動,則其值會是在0的右邊(100)。

正如上面所說的,向右滾動的時候,等於是把背後的幕布向右推動,使得沒有內容的幕布(x < 0)顯示出來, 而向左滾動,則是把幕左向左推動,讓右邊的內容(x > 0)移到視窗的左邊緣上。

二 .

Flutter 側滑刪除側滑操作控制項

簡單的側滑操作控制項,支援左滑和右滑以及三種滑出樣式,互斥事件使用了eventbus,可換成其它方式實現。其中 screenmanager.getinstance screenwidth 是螢幕的寬度。側滑控制項 class sideslidewidget extends statefulwidge...

SlidingMenu 簡單側滑

slidingmenu menu new slidingmenu this menu.setmode slidingmenu.left 設定側滑 左滑 還是右滑 menu.settouchmodeabove slidingmenu.sliding window 設定觸控螢幕的模式 menu.setb...

側滑選單的實現

一般的側滑的實現 viewgroup menu content ontouchevent move viewgroup的 leftmargin up 根據現實選單的寬度,決定將其隱藏或者現實 1 scroller 2 leftmargin thread 今天,繼承 horizontalscrollv...