回收站向左滑动和向右滑动执行不同的操作

8
我有以下的回收视图代码,允许用户向右滑动(从视图中删除卡片并从SQLite数据库中删除数据),还允许用户移动标签以重新排列。它有效运行,我很高兴。
ItemTouchHelper.SimpleCallback simpleItemTouchCallback = new ItemTouchHelper.SimpleCallback(ItemTouchHelper.UP | ItemTouchHelper.DOWN,  ItemTouchHelper.RIGHT) {
        @Override
        public boolean onMove(RecyclerView recyclerView, RecyclerView.ViewHolder viewHolder, RecyclerView.ViewHolder target) {
            //awesome code when user grabs recycler card to reorder   
        } 

        @Override
        public void clearView(RecyclerView recyclerView, RecyclerView.ViewHolder viewHolder) {
            super.clearView(recyclerView, viewHolder);
            //awesome code to run when user drops card and completes reorder
        }

        @Override
        public void onSwiped(RecyclerView.ViewHolder viewHolder, int direction) {
            //awesome code when swiping right to remove recycler card and delete SQLite data
        }
    };
    ItemTouchHelper itemTouchHelper = new ItemTouchHelper(simpleItemTouchCallback);
    itemTouchHelper.attachToRecyclerView(recyclerView);

现在,我想要添加向左滑动并执行与向右滑动不同的操作的能力。到目前为止,我找到的所有解决方案都需要重写我的代码。有没有建议可以在我的现有代码中添加向左滑动的功能?

3个回答

7
onSwiped方法中,添加-
if (direction == ItemTouchHelper.RIGHT) {
//whatever code you want the swipe to perform
}

然后再添加一个用于左滑的手势-

if (direction == ItemTouchHelper.LEFT) {
//whatever code you want the swipe to perform
}

1
利用onSwiped()中的direction参数。请参见文档。您可以根据向右或向左滑动进行调整。

0

对我来说,方向返回的是START/END而不是LEFT/RIGHT,所以这就是我必须要做的。

    if(direction == ItemTouchHelper.START) {
        // DO Action for Left

    } else if(direction == ItemTouchHelper.END) {
        // DO Action for Right

    }

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接