我需要能够以编程方式解除RecyclerView
内的项目,而无需用户实际刷卡(相反,我想在点击卡片中的按钮时关闭该项目)。我见过的很多图书馆似乎只支持实际滑动。
我尝试过使用现有的库,只是通过编程自己创建一个滑动来模拟MotionEvent
,但这会干扰另一个水平滑动监听器,所以我想知道如何做到这一点,理想情况下是RecyclerView
,但如果有人知道如何使用ListView
,我可以尝试对其进行调整。
我看过this库以及其他人的灵感,但我无法弄清楚如何以编程方式触发滑动。
答案 0 :(得分:3)
将ListView
或RecyclerView
与自定义适配器一起使用,并在从数据列表中删除项目后调用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中调用它。