如何以编程方式启动滑动以使用RecyclerView解除

时间:2015-11-17 16:44:17

标签: android animation android-recyclerview swipe

当我从RecyclerView中删除某个项目时,我想要显示"轻扫"动画,即项目从屏幕侧面移动。我相信有支持"轻扫以解雇"使用ItemTouchHelper,但这是触摸启动的,而我希望能够以编程方式启动滑动。

我还尝试通过扩展DefaultItemAnimator来设置RecyclerView项动画师。使用此方法,我可以让项目左右滑动,但不幸的是,列表中的间隙很快关闭,因此在列表项间隙关闭之前滑动没有完成。

任何人都知道怎么做?

2 个答案:

答案 0 :(得分:2)

您可以使用this library提供的ItemAnimators。更具体地说,您将使用他们的SlideInLeftAnimatorSlideInRightAnimator

答案 1 :(得分:0)

旧的,但已经通过外部库得到了答复;可能有人想用原始Java来做。我已经用here

中的解决方案来做

这个想法是,您删除要删除的RecyclerView的列表项视图并对其进行动画处理;并通常将其从适配器中删除

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