24

私は を持っRecyclerViewていItemTouchHelperます。すべてがうまく機能しますが、リストを再作成せずに をItemTouchHelperから切り離す方法があるかどうか疑問に思っていますか? RecyclerView楽しみのために、これは私が添付するために使用しているコードです:

ItemTouchHelper.Callback callback = new ItemTouchHelper.SimpleCallback(0, ItemTouchHelper.LEFT | ItemTouchHelper.RIGHT)
{
    ...
};
mItemTouchHelper = new ItemTouchHelper(callback);
mItemTouchHelper.attachToRecyclerView(mPasswordList);

onResume()理想的には、これが住んでいるアクティビティの好みを確認し、それに基づいてRecyclerView切り離したいと思います。ItemTouchHelper

4

3 に答える 3

32

recyclerview を null に設定することで、RecyclerView から ItemTouchHelper を切り離すことができます。

mItemTouchHelper.attachToRecyclerView(null);
于 2016-03-27T11:23:52.163 に答える
25

これの最初の動機は、ユーザーが必要に応じてリスト アイテムのスワイプ アクションを無効にできるようにすることでした。ItemTouchHelperこれを行う方法は、からを切り離すことだと思いましたRecyclerViewItemTouchHelper.SimpleCallbackオーバーライドに使用できる次のメソッドがあることがわかりました。

@Override
public boolean isItemViewSwipeEnabled()
{
    return mSwipable;
}

したがって、ここで正しい状態を返すと、スワイプ処理が効果的にオフになります。これが将来誰かに役立つことを願っています。

于 2016-02-11T17:24:41.370 に答える