最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Android用RecyclerView實(shí)現(xiàn)圖標(biāo)拖拽排序以及增刪管理

 更新時(shí)間:2021年03月17日 10:18:21   作者:Joehaivo飛羽  
這篇文章主要介紹了Android用RecyclerView實(shí)現(xiàn)圖標(biāo)拖拽排序以及增刪管理的方法,幫助大家更好的理解和學(xué)習(xí)使用Android,感興趣的朋友可以了解下

1. 效果圖

2. 基本的功能

在非編輯狀態(tài)下可以直接點(diǎn)擊圖標(biāo)進(jìn)行跳轉(zhuǎn)
在編輯狀態(tài)可以拖拽、添加、刪除操作
已被添加過(guò)的不能再次添加

3. 實(shí)現(xiàn)的思路

用兩個(gè)RecyclerView實(shí)現(xiàn),同時(shí)維護(hù)兩個(gè)數(shù)據(jù)源,上部是常用應(yīng)用,最多可以放8個(gè);下部是全部應(yīng)用。

1. 每個(gè)應(yīng)用圖標(biāo)的狀態(tài)用枚舉Option表示

// 當(dāng)前的操作狀態(tài)
enum class Option {
 ADD, REMOVE, NONE
}

2. 在處于編輯狀態(tài)時(shí)創(chuàng)建ItemTouchHelper對(duì)象并attch到RecyclerView上

if (enable) {
 itemTouchHelper.attachToRecyclerView(binding.rvApps)
} 

其中,在實(shí)現(xiàn)ItemTouchHelper.Callback接口的onMove() 函數(shù)中,此時(shí)表示用戶已經(jīng)抬手,而圖標(biāo)位置已經(jīng)發(fā)生了變動(dòng),此時(shí)將界面上圖標(biāo)的順序同步回Adapter的數(shù)據(jù)源中:

val newData = mutableListOf<Pair<String, Int>>()
commonAppsAdapter.data.forEachIndexed { index, _ ->
 val holder = recyclerView.findViewHolderForAdapterPosition(index) as AppsHolder
 newData.add(Pair(holder.funcUrl, index))
}
for (i in newData) {
  val sameFuncIndex = commonAppsAdapter.data.indexOfFirst { i.first == it.uid }
  Collections.swap(commonAppsAdapter.data, i.second, sameFuncIndex)
}

3. 當(dāng)應(yīng)用圖標(biāo)從上部被刪除時(shí),需要將其添加到下部,并將其重新設(shè)為可添加狀態(tài)

commonAppsAdapter.onRemoveBtnClickListener = object : OnRemoveBtnClickListener {
 override fun onClick(view: View, appBean: AppBean) {
  val theSameElementIndex = allAppsAdapter.data.indexOfFirst { it.uid == appBean.uid }
  if (theSameElementIndex < 0) return
  allAppsAdapter.data[theSameElementIndex].option = AppBean.Companion.Option.ADD
  allAppsAdapter.notifyItemChanged(theSameElementIndex)
 }
}

源碼請(qǐng)前往Github

以上就是Android用RecyclerView實(shí)現(xiàn)圖標(biāo)拖拽排序以及增刪管理的詳細(xì)內(nèi)容,更多關(guān)于Android 實(shí)現(xiàn)圖標(biāo)拖拽排序以及增刪管理的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • AndroidStudio 設(shè)置格式化斷行寬度教程

    AndroidStudio 設(shè)置格式化斷行寬度教程

    這篇文章主要介紹了AndroidStudio 設(shè)置格式化斷行寬度教程,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2020-03-03
  • Android實(shí)現(xiàn)一個(gè)帶粘連效果的LoadingBar

    Android實(shí)現(xiàn)一個(gè)帶粘連效果的LoadingBar

    Loading效果相信大家應(yīng)該都實(shí)現(xiàn)過(guò),最近發(fā)現(xiàn)了一個(gè)不錯(cuò)的效果,決定分享給大家,所以下面這篇文章主要給大家介紹了關(guān)于利用Android實(shí)現(xiàn)一個(gè)帶粘連效果的LoadingBar的相關(guān)資料,需要的朋友可以參考借鑒,下面來(lái)一起看看吧。
    2017-12-12
  • Android Dialog對(duì)話框用法實(shí)例詳解

    Android Dialog對(duì)話框用法實(shí)例詳解

    這篇文章主要介紹了Android Dialog對(duì)話框用法,結(jié)合實(shí)例形式分析了Android使用Dialog對(duì)話框過(guò)程中所涉及的創(chuàng)建、保存、回復(fù)等操作相關(guān)技巧與注意事項(xiàng),需要的朋友可以參考下
    2016-07-07
  • Android 實(shí)現(xiàn)抖音頭像底部彈框效果的實(shí)例代碼

    Android 實(shí)現(xiàn)抖音頭像底部彈框效果的實(shí)例代碼

    這篇文章主要介紹了Android 實(shí)現(xiàn)抖音頭像底部彈框效果,本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2020-04-04
  • Android Toolbar應(yīng)用欄使用方法簡(jiǎn)介

    Android Toolbar應(yīng)用欄使用方法簡(jiǎn)介

    App中應(yīng)用欄是十分常見的,通常應(yīng)用欄會(huì)顯示當(dāng)前頁(yè)面的標(biāo)題,還有一些操作按鈕,例如返回、搜索、掃碼等。本文介紹如何通過(guò)Toolbar實(shí)現(xiàn)應(yīng)用欄
    2022-12-12
  • Android用動(dòng)畫顯示或隱藏視圖

    Android用動(dòng)畫顯示或隱藏視圖

    大家好,本篇文章主要講的是Android用動(dòng)畫顯示或隱藏視圖,感興趣的同學(xué)趕快來(lái)看一看吧,對(duì)你有幫助的話記得收藏一下
    2022-01-01
  • 代碼從windows下visual studio到andriod平臺(tái)遷移實(shí)現(xiàn)步驟

    代碼從windows下visual studio到andriod平臺(tái)遷移實(shí)現(xiàn)步驟

    這篇文章主要介紹了代碼從windows下visual studio到andriod平臺(tái)遷移的修改記錄的相關(guān)資料,需要的朋友可以參考下
    2017-01-01
  • Android實(shí)現(xiàn)手機(jī)多點(diǎn)觸摸畫圓

    Android實(shí)現(xiàn)手機(jī)多點(diǎn)觸摸畫圓

    這篇文章主要為大家詳細(xì)介紹了Android實(shí)現(xiàn)手機(jī)多點(diǎn)觸摸畫圓,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2022-05-05
  • Angular5.0.0新特性

    Angular5.0.0新特性

    Angular5.0.0是一款非常優(yōu)秀的前端JS框架,已經(jīng)被用于google多款產(chǎn)品當(dāng)中,這篇文章主要介紹了Angular5.0.0新特性,需要的朋友可以參考下
    2017-11-11
  • Android多邊形區(qū)域遞歸種子填充算法的示例代碼

    Android多邊形區(qū)域遞歸種子填充算法的示例代碼

    這篇文章主要介紹了Android多邊形區(qū)域遞歸種子填充算法,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2018-05-05

最新評(píng)論

安阳市| 丹阳市| 闵行区| 名山县| 顺平县| 辛集市| 沿河| 滦南县| 高碑店市| 鹤峰县| 横峰县| 石台县| 祁东县| 衢州市| 句容市| 柯坪县| 思茅市| 乃东县| 吴川市| 乌审旗| 彝良县| 中方县| 襄汾县| 泽库县| 秭归县| 读书| 柳江县| 花莲市| 舞阳县| 鄂温| 永康市| 盈江县| 齐齐哈尔市| 东方市| 崇明县| 柘城县| 西宁市| 鱼台县| 五家渠市| 赫章县| 泰来县|