Java 在RecylclerView中使用具有不同viewHolder的模板类型

Java 在RecylclerView中使用具有不同viewHolder的模板类型,java,android,Java,Android,我有RecylerView,它有三种不同类型的viewHolder都是从`RecyclerView.viewHolder扩展而来的 ImageViewHolder VideoViewHolder TextViewHolder 我为动画创建了一个函数。我需要在此函数中将viewHolder作为参数传递。因为有三个不同的视图持有者,我需要创建三个不同的动画功能?或者我可以在同一个函数中传递不同类型的viewHolder private void runEnterAnimation(final I

我有
RecylerView
,它有三种不同类型的
viewHolder
都是从`RecyclerView.viewHolder扩展而来的

  • ImageViewHolder
  • VideoViewHolder
  • TextViewHolder
我为动画创建了一个函数。我需要在此函数中将
viewHolder
作为参数传递。因为有三个不同的视图持有者,我需要创建三个不同的动画功能?或者我可以在同一个函数中传递不同类型的viewHolder

private void runEnterAnimation(final ImageViewHolder holder) {
    final int screenHeight = Utils.getScreenHeight(holder.itemView.getContext());
    holder.itemView.setTranslationY(screenHeight);
    holder.itemView.animate()
            .translationY(0)
            .setInterpolator(new DecelerateInterpolator(3.f))
            .setDuration(700)
            .setListener(new AnimatorListenerAdapter() {
                @Override
                public void onAnimationEnd(Animator animation) {
                    dispatchAddFinished(holder);
                }
            })
            .start();
}
这是我的动画功能

private void runEnterAnimation(final ImageViewHolder holder) {
    final int screenHeight = Utils.getScreenHeight(holder.itemView.getContext());
    holder.itemView.setTranslationY(screenHeight);
    holder.itemView.animate()
            .translationY(0)
            .setInterpolator(new DecelerateInterpolator(3.f))
            .setDuration(700)
            .setListener(new AnimatorListenerAdapter() {
                @Override
                public void onAnimationEnd(Animator animation) {
                    dispatchAddFinished(holder);
                }
            })
            .start();
}
运行此动画

runEnterAnimation((ImageViewHolder) viewHolder);
我尝试将此函数转换为模板变量,但不起作用。
带有模板
T
类型的动画

private<T> void runEnterAnimation(final T holder) {
//.... } // not working, can not resolve symbol itemView
private void runEnterAnimation(最终T持有者){
//..}//不工作,无法解析符号itemView

你能告诉我怎么做吗。

为什么不简单地将参数声明为type
RecyclerView.ViewHolder
?这样行吗?如果我不想通过
RecyclerView.ViewHolder
传递模板type
t