【问题标题】:Recycler swipe left and swipe right perform different actions回收站向左滑动和向右滑动执行不同的操作
【发布时间】:2017-08-10 01:27:13
【问题描述】:

我有以下回收器视图代码,允许用户向右滑动(从视图中删除卡片并从 SQLite db 中删除数据),还允许用户移动标签以重新排列。有用。我很高兴。

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);

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

【问题讨论】:

    标签: android android-recyclerview swipe


    【解决方案1】:

    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
    }
    

    【讨论】:

      【解决方案2】:

      使用direction 参数到onSwiped()。请参阅documentation。您可以根据您是向右还是向左滑动来进行调整。

      【讨论】:

        【解决方案3】:

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

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

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2013-02-17
          • 2015-07-10
          • 1970-01-01
          • 2010-10-10
          相关资源
          最近更新 更多