diff --git a/library/src/main/java/com/chad/library/adapter/base/BaseMultiItemQuickAdapter.java b/library/src/main/java/com/chad/library/adapter/base/BaseMultiItemQuickAdapter.java index 453f59dea..2e96e114b 100644 --- a/library/src/main/java/com/chad/library/adapter/base/BaseMultiItemQuickAdapter.java +++ b/library/src/main/java/com/chad/library/adapter/base/BaseMultiItemQuickAdapter.java @@ -2,7 +2,6 @@ import android.support.annotation.IntRange; import android.support.annotation.LayoutRes; -import android.util.Log; import android.util.SparseIntArray; import android.view.ViewGroup; @@ -14,7 +13,7 @@ /** * https://github.com/CymChad/BaseRecyclerViewAdapterHelper */ -public abstract class BaseMultiItemQuickAdapter extends BaseQuickAdapter { +public abstract class BaseMultiItemQuickAdapter extends BaseQuickAdapter { /** * layouts indexed with their types @@ -34,11 +33,13 @@ public BaseMultiItemQuickAdapter(List data) { super(data); } + public abstract int getItemType(T data, int position); + @Override protected int getDefItemViewType(int position) { T item = mData.get(position); if (item != null) { - return item.getItemType(); + return getItemType(item, position); } return DEFAULT_VIEW_TYPE; } diff --git a/library/src/main/java/com/chad/library/adapter/base/BaseQuickAdapter.java b/library/src/main/java/com/chad/library/adapter/base/BaseQuickAdapter.java index 9f4916cc2..1579713c6 100755 --- a/library/src/main/java/com/chad/library/adapter/base/BaseQuickAdapter.java +++ b/library/src/main/java/com/chad/library/adapter/base/BaseQuickAdapter.java @@ -135,6 +135,9 @@ public abstract class BaseQuickAdapter extends Recy private RecyclerView mRecyclerView; + protected void onViewCached(final K holder, View view, int resId) { + } + protected RecyclerView getRecyclerView() { return mRecyclerView; } diff --git a/library/src/main/java/com/chad/library/adapter/base/BaseViewHolder.java b/library/src/main/java/com/chad/library/adapter/base/BaseViewHolder.java index be47b1335..0670c8a35 100755 --- a/library/src/main/java/com/chad/library/adapter/base/BaseViewHolder.java +++ b/library/src/main/java/com/chad/library/adapter/base/BaseViewHolder.java @@ -596,6 +596,10 @@ public T getView(@IdRes int viewId) { if (view == null) { view = itemView.findViewById(viewId); views.put(viewId, view); + + if (this.adapter != null) { + this.adapter.onViewCached(this, view, viewId); + } } return (T) view; }