以编程方式“轻扫 - 关闭”ListView / RecyclerView中的项目?

时间:2015-06-04 17:22:25

标签: android listview swipe android-recyclerview android-cardview

我需要能够以编程方式解除RecyclerView内的项目,而无需用户实际刷卡(相反,我想在点击卡片中的按钮时关闭该项目)。我见过的很多图书馆似乎只支持实际滑动。

我尝试过使用现有的库,只是通过编程自己创建一个滑动来模拟MotionEvent,但这会干扰另一个水平滑动监听器,所以我想知道如何做到这一点,理想情况下是RecyclerView,但如果有人知道如何使用ListView,我可以尝试对其进行调整。

我看过this库以及其他人的灵感,但我无法弄清楚如何以编程方式触发滑动。

2 个答案:

答案 0 :(得分:3)

ListViewRecyclerView与自定义适配器一起使用,并在从数据列表中删除项目后调用notifyDataSetChanged

private void removeListItem(View rowView, final int position) {

    Animation anim = AnimationUtils.loadAnimation(this,
            android.R.anim.slide_out_right);
    anim.setDuration(500);
    rowView.startAnimation(anim);

    new Handler().postDelayed(new Runnable() {

        public void run() {

            values.remove(position); //Remove the current content from the array

            adapter.notifyDataSetChanged(); //Refresh list
        }

    }, anim.getDuration());
}

答案 1 :(得分:0)

如果我在 onTouch() action_up 中没有弄错,请使用其中一个提供滑动功能的库来解析功能广告提取动画部分。然后从按钮的onClick中调用它。