package com.lin.poweradapter;
import android.support.annotation.LayoutRes;
import android.support.annotation.NonNull;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import java.util.List;
public abstract class AdapterDelegate<T, VH extends PowerViewHolder> {
protected abstract boolean isForViewType(@NonNull T item, int position);
@NonNull
abstract protected VH onCreateViewHolder(ViewGroup parent);
protected abstract void onBindViewHolder(@NonNull T item, int position,
@NonNull VH holder, @NonNull List<Object> payloads);
protected void onViewRecycled(@NonNull VH viewHolder) {
}
protected boolean onFailedToRecycleView(@NonNull VH holder) {
return false;
}
protected void onViewAttachedToWindow(@NonNull VH holder) {
}
protected void onViewDetachedFromWindow(VH holder) {
}
public static View getItemView(@NonNull ViewGroup parent, @LayoutRes int layoutResId) {
return LayoutInflater.from(parent.getContext()).inflate(layoutResId, parent, false);
}
}