0
1

More than 1 year has passed since last update.

kotlin RecyclerViewの並び替え(ドラッグ&ドロップ、スワイプ)の方法

Posted at

初めに

RecyclerViewのアイテムを長押しでドラッグ、そのままアイテムを移動 または、スワイプ
させる実装です
簡単にではありますが、実装方法を残しておきます

早速

まず、RecyclerViewが実装されたActivityやFragmentにメンバ変数を定義します

private var itemTouchHelper: ItemTouchHelper? = null

同じクラスのonCreate()関数もしくは、onViewCreated()関数内に以下のコードを入力します

    // ドラック&ドロップの実装
    itemTouchHelper = ItemTouchHelper(
        object : ItemTouchHelper.SimpleCallback(ItemTouchHelper.UP or ItemTouchHelper.DOWN,
            ItemTouchHelper.ACTION_STATE_IDLE) {
            override fun onMove( // ドラッグした時
                recyclerView: RecyclerView,
                viewHolder: RecyclerView.ViewHolder,
                target: RecyclerView.ViewHolder,
            ): Boolean {
                val fromPos = viewHolder.adapterPosition
                val toPos = target.adapterPosition
                // 並び替えを実装したいrecyclerViewのadapter
                // 引数には 並び替え前のポジション,並び替え後のポジション
                adapter.notifyItemMoved(fromPos, toPos)
                return true
            }

            override fun onSwiped(viewHolder: RecyclerView.ViewHolder, direction: Int) {
                // スワイプでやりたい処理
            }
        })

以上になります

終わりに

携帯からスマホになって自然と使っていたドラッグ&ドロップですが、こんな実装をしていたんだ!と身近で使っていた機能を実際に紐解くことができる楽しい体験ができました

個人的にこの実装の記事で端的でわかりやすいものがjavaの記事が多かったので自分用に記事を残しました

0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1