item 的拖拽移動(dòng)

一、
定義一個(gè)接口

public interface TouchBack {
    void OnDragItem(int fromposition, int toposition);

    void OnDeleteItem(int position);

}

二、
ItemTouchHelper.Callback中的方法馏慨,所以我們首先自定義自己的類(lèi)來(lái)繼承它哥蔚,重寫(xiě)其中方法。首先是getMovementFlags()方法莱坎,這個(gè)方法主要作用是定義移動(dòng)標(biāo)識(shí)衣式,所以針對(duì)拖動(dòng)效果,我們可以首先定義拖動(dòng)標(biāo)識(shí),通過(guò)ItemTouchHelper提供的參數(shù)來(lái)定義

簡(jiǎn)單來(lái)說(shuō): 就是 定義 參數(shù) 提供拖動(dòng)標(biāo)識(shí)檐什;

public class SimpTouchback extends ItemTouchHelper.Callback {
    private TouchBack back;

       //利用接口回調(diào)    回調(diào)內(nèi)容
    public SimpTouchback(TouchBack back) {
        this.back = back;
    }
    @Override
    public int getMovementFlags(@NonNull RecyclerView recyclerView, @NonNull RecyclerView.ViewHolder viewHolder) {
        int drag = ItemTouchHelper.DOWN | ItemTouchHelper.UP;   //  上下
        int Delete = ItemTouchHelper.LEFT;    //向左
        return makeMovementFlags( drag, Delete );   //允許上下   向左
    }

    @Override
    public boolean onMove(@NonNull RecyclerView recyclerView, @NonNull RecyclerView.ViewHolder viewHolder, @NonNull RecyclerView.ViewHolder viewHolder1) {
        back.OnDragItem( viewHolder.getAdapterPosition(), viewHolder1.getAdapterPosition() );  //接口回調(diào)    回調(diào) item交換的位置
        return true;
    }

    @Override
    public void onSwiped(@NonNull RecyclerView.ViewHolder viewHolder, int i) {   //在這里可以對(duì)itme 做刪除
        back.OnDeleteItem( viewHolder.getAdapterPosition() );  
    }

    @Override
    public boolean isItemViewSwipeEnabled() {    //   是否 對(duì)拖動(dòng)效果 進(jìn)行 屏蔽
        return super.isItemViewSwipeEnabled();   //默認(rèn)是不會(huì)屏蔽
    }

    @Override
    public boolean isLongPressDragEnabled() { //    這個(gè)跟上一個(gè)方法的意思差不多是否 對(duì)拖動(dòng)效果 進(jìn)行 屏蔽
        return super.isLongPressDragEnabled();//默認(rèn)是不會(huì)屏蔽
    }
}

三碴卧、
在適配中 實(shí)現(xiàn)接口 實(shí)現(xiàn)重寫(xiě)其中的方法

例如:

    @Override
    public void OnDragItem(int fromposition, int toposition) {
        Collections.swap( list, fromposition, toposition );     //Collections  是一個(gè)集合的  工具   swap  交換

        notifyItemMoved( fromposition, toposition );//  簡(jiǎn)單來(lái)說(shuō)就只刷新這兩個(gè)位置
    }

    @Override
    public void OnDeleteItem(int position) {
        list.remove( position );         //   刪除集合中的位置
        notifyItemRemoved( position );  // 只刷新 刪除的位置   
    }

四 、
做完這一系列的 操作 剩下的只有我們的activity了

Myadapter myadapter = new Myadapter( list );   // 這個(gè)不用介紹了吧
      mRec.setAdapter( myadapter );  //=_=  
      mRec.setLayoutManager( new LinearLayoutManager( this ) ); //=_=  
      mRec.addItemDecoration( new DividerItemDecoration( this, DividerItemDecoration.VERTICAL ) );  //這個(gè)是  給item添加 一條分割線

      SimpTouchback simpTouchback = new SimpTouchback( myadapter );  //這個(gè)就是重頭戲了     new  出對(duì)象    這個(gè)就是接口回調(diào)的機(jī)制了
      ItemTouchHelper itemTouchHelper = new ItemTouchHelper( simpTouchback );// 通過(guò)我  小幫手   itemtouchHelper
乃正、住册、
      itemTouchHelper.attachToRecyclerView( mRec );  // 把我們?cè)O(shè)置的屬性 最終給我們的  Recycler。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末瓮具,一起剝皮案震驚了整個(gè)濱河市荧飞,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌名党,老刑警劉巖垢箕,帶你破解...
    沈念sama閱讀 218,386評(píng)論 6 506
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異兑巾,居然都是意外死亡条获,警方通過(guò)查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,142評(píng)論 3 394
  • 文/潘曉璐 我一進(jìn)店門(mén)蒋歌,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)帅掘,“玉大人委煤,你說(shuō)我怎么就攤上這事⌒薜担” “怎么了碧绞?”我有些...
    開(kāi)封第一講書(shū)人閱讀 164,704評(píng)論 0 353
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)吱窝。 經(jīng)常有香客問(wèn)我讥邻,道長(zhǎng),這世上最難降的妖魔是什么院峡? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 58,702評(píng)論 1 294
  • 正文 為了忘掉前任兴使,我火速辦了婚禮,結(jié)果婚禮上照激,老公的妹妹穿的比我還像新娘发魄。我一直安慰自己,他們只是感情好俩垃,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,716評(píng)論 6 392
  • 文/花漫 我一把揭開(kāi)白布励幼。 她就那樣靜靜地躺著,像睡著了一般口柳。 火紅的嫁衣襯著肌膚如雪苹粟。 梳的紋絲不亂的頭發(fā)上,一...
    開(kāi)封第一講書(shū)人閱讀 51,573評(píng)論 1 305
  • 那天跃闹,我揣著相機(jī)與錄音六水,去河邊找鬼。 笑死辣卒,一個(gè)胖子當(dāng)著我的面吹牛掷贾,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播荣茫,決...
    沈念sama閱讀 40,314評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼想帅,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來(lái)了啡莉?” 一聲冷哼從身側(cè)響起港准,我...
    開(kāi)封第一講書(shū)人閱讀 39,230評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎咧欣,沒(méi)想到半個(gè)月后浅缸,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,680評(píng)論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡魄咕,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,873評(píng)論 3 336
  • 正文 我和宋清朗相戀三年衩椒,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 39,991評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡毛萌,死狀恐怖苟弛,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情阁将,我是刑警寧澤膏秫,帶...
    沈念sama閱讀 35,706評(píng)論 5 346
  • 正文 年R本政府宣布,位于F島的核電站做盅,受9級(jí)特大地震影響缤削,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜吹榴,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,329評(píng)論 3 330
  • 文/蒙蒙 一亭敢、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧腊尚,春花似錦吨拗、人聲如沸满哪。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 31,910評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)哨鸭。三九已至民宿,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間像鸡,已是汗流浹背活鹰。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 33,038評(píng)論 1 270
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留只估,地道東北人志群。 一個(gè)月前我還...
    沈念sama閱讀 48,158評(píng)論 3 370
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像蛔钙,于是被迫代替她去往敵國(guó)和親锌云。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,941評(píng)論 2 355

推薦閱讀更多精彩內(nèi)容