Aspsine / IRecyclerView

IRecyclerView is a custom RecyclerView that supports pull-to-refresh, pull-to-loadmore, customize refresh header and loadmore footer, add header views and footer views.
729 stars 146 forks source link

IViewHolder是必须的吗? #32

Closed shlockfan closed 7 years ago

shlockfan commented 7 years ago

如果ViewHolder不继承IViewHolder会有问题吗?

Aspsine commented 7 years ago

IViewHolder 不是必须的。如果不继承IViewHolder ,各种position就得自己去计算。 现在是用继承的方式来处理的,感觉换成组合会更灵活,不过肯定还是需要一个Utils类来计算position。

public abstract class IViewHolder extends RecyclerView.ViewHolder {

    public IViewHolder(View itemView) {
        super(itemView);
    }

    @Deprecated
    public final int getIPosition() {
        return getPosition() - 2;
    }

    public final int getILayoutPosition() {
        return getLayoutPosition() - 2;
    }

    public final int getIAdapterPosition() {
        return getAdapterPosition() - 2;
    }

    public final int getIOldPosition() {
        return getOldPosition() - 2;
    }

    public final long getIItemId() {
        return getItemId();
    }

    public final int getIItemViewType() {
        return getItemViewType();
    }
}