RecyclerViews中的动画

时间:2017-09-25 14:50:08

标签: java android

我正在尝试在我的RecyclerView中实现动画[{3}}

我很难使用帖子中提到的这段代码。

@Override
    public void onViewDetachedFromWindow(final RecyclerView.ViewHolder holder)
    {
        ((CustomViewHolder)holder).clearAnimation();
    }

它给我这样的错误,我无法解决它

here

我也有混淆

public void clearAnimation()
    {
        mRootLayout.clearAnimation();
    }

我应该如何添加和使用它?

由于

2 个答案:

答案 0 :(得分:0)

如何让您的任务更轻松,并使用已具备该功能的库? 我个人建议尝试看一下这些库: 1. https://github.com/cymcsg/UltimateRecyclerView 2. https://android-arsenal.com/details/1/5797 3. https://github.com/h6ah4i/android-advancedrecyclerview

m using those library并按预期工作。

更新:由于您没有提供更多代码来了解您的具体情况,我可以提供以下提示:   尝试在onViewDetachedFromWindow上取消动画。

尝试使用相同的方法反转动画:

    @Override
 public void onViewDetachedFromWindow(ViewHolder holder) {
if (holder.getItemViewType() == poition) ((ItemView) 
  holder.itemView).reverseAllAnimations();
 }

答案 1 :(得分:0)

<强>解释

由于方法onViewDetachedFromWindow()期望作为参数类型扩展RecyclerView.ViewHolder的类,因此Java不允许您使用父类重写该函数。

<强>解决方案:

您需要使用与参数相同的类型作为传递给适配器的泛型类型。例如,如果您的适配器类定义为:

private class NewQouteAdapter extends RecyclerView.Adapter<NewQouteAdapter.ViewHolder>{ ...  }

您可以使用NewQouteAdapter.ViewHolderViewHolderonViewDetachedFromWindow()函数参数作为类型。

对于第二部分,在链接clearAnimation()的示例中,在ViewHolder类中定义,并在holder实例上使用View函数,可以通过itemView变量获得,然后调用在AdapterClass上holder对象的实例。

或者不要使用自己的clearAnimation(),只需在适配器中调用View方法:  holder.itemView.clearAnimation();