我正在尝试在我的RecyclerView中实现动画[{3}}
我很难使用帖子中提到的这段代码。
@Override
public void onViewDetachedFromWindow(final RecyclerView.ViewHolder holder)
{
((CustomViewHolder)holder).clearAnimation();
}
它给我这样的错误,我无法解决它
我也有混淆
public void clearAnimation()
{
mRootLayout.clearAnimation();
}
我应该如何添加和使用它?
由于
答案 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.ViewHolder
或ViewHolder
到onViewDetachedFromWindow()
函数参数作为类型。
对于第二部分,在链接clearAnimation()
的示例中,在ViewHolder类中定义,并在holder实例上使用View
函数,可以通过itemView
变量获得,然后调用在AdapterClass上holder
对象的实例。
或者不要使用自己的clearAnimation(),只需在适配器中调用View方法:
holder.itemView.clearAnimation();