1. ホーム
  2. android

[解決済み] RecyclerViewのSwipe to Dismissについて【終了しました

2022-09-18 23:08:57

質問

以前は スワイプ・トゥ・ディスミス ライブラリを使用していましたが、現在RecyclerViewに移行しようとしており、物事がそれほど明白ではありません。このライブラリに代わるものをご存知でしょうか?また、ゼロから実装する方法はありますか?

どのように解決するのですか?

v22.2.0 の時点で、Android サポート チームが ItemTouchHelper クラスが含まれており、スワイプによる解除とドラッグ アンド ドロップが非常に簡単に行えるようになっています。これは、そこにあるいくつかのライブラリと比べるとフル機能ではないかもしれませんが、Android チームから直接提供されたものです。

  • RecyclerView ライブラリーの v22.2.+ をインポートするために build.gradle を更新します。

    compile 'com.android.support:recyclerview-v7:22.2.+'
    
    
  • 適切なSimpleCallbackを持つItemTouchHelperのインスタンスを作成します。

    ItemTouchHelper.SimpleCallback simpleItemTouchCallback = new ItemTouchHelper.SimpleCallback(0, ItemTouchHelper.LEFT | ItemTouchHelper.RIGHT) {
        [...]
        @Override
        public void onSwiped(RecyclerView.ViewHolder viewHolder, int swipeDir) {
            //Remove swiped item from list and notify the RecyclerView
        }
    };
    
    ItemTouchHelper itemTouchHelper = new ItemTouchHelper(simpleItemTouchCallback);
    
    

    ** SimpleCallbackはドラッグ&ドロップを有効にしたい方向とスワイプを有効にしたい方向を取り込んでいることに注意してください。

  • RecyclerViewにアタッチします。

    itemTouchHelper.attachToRecyclerView(recyclerView);