From 1491230215449101aa0a16cb3004207ee96cd561 Mon Sep 17 00:00:00 2001 From: BlingBling <1109993488@qq.com> Date: Thu, 8 Dec 2016 10:44:25 +0800 Subject: [PATCH 1/2] fix #601 --- .../adapter/base/BaseQuickAdapter.java | 26 ++++++++++++------- 1 file changed, 16 insertions(+), 10 deletions(-) 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 a528647ff..5ac692670 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 @@ -75,7 +75,7 @@ public abstract class BaseQuickAdapter extends Recy private LinearLayout mHeaderLayout; private LinearLayout mFooterLayout; //empty - private FrameLayout mEmptyView; + private FrameLayout mEmptyLayout; private boolean mIsUseEmpty = true; private boolean mHeadAndEmptyEnable; private boolean mFootAndEmptyEnable; @@ -414,12 +414,12 @@ public int getFooterLayoutCount() { } /** - * if mEmptyView will be return 1 or not will be return 0 + * if show empty view will be return 1 or not will be return 0 * * @return */ public int getEmptyViewCount() { - if (mEmptyView == null || mEmptyView.getChildCount() == 0) { + if (mEmptyLayout == null || mEmptyLayout.getChildCount() == 0) { return 0; } if(!mIsUseEmpty){ @@ -507,7 +507,7 @@ public K onCreateViewHolder(ViewGroup parent, int viewType) { baseViewHolder = createBaseViewHolder(mHeaderLayout); break; case EMPTY_VIEW: - baseViewHolder = createBaseViewHolder(mEmptyView); + baseViewHolder = createBaseViewHolder(mEmptyLayout); break; case FOOTER_VIEW: baseViewHolder = createBaseViewHolder(mFooterLayout); @@ -839,13 +839,19 @@ private int getFooterViewPosition() { public void setEmptyView(View emptyView) { boolean insert = false; - if (mEmptyView == null) { - mEmptyView = new FrameLayout(emptyView.getContext()); - mEmptyView.setLayoutParams(new LayoutParams(MATCH_PARENT, MATCH_PARENT)); + if (mEmptyLayout == null) { + mEmptyLayout = new FrameLayout(emptyView.getContext()); + final LayoutParams layoutParams = new LayoutParams(LayoutParams.MATCH_PARENT, LayoutParams.MATCH_PARENT); + final ViewGroup.LayoutParams lp = emptyView.getLayoutParams(); + if (lp != null) { + layoutParams.width = lp.width; + layoutParams.height = lp.height; + } + mEmptyLayout.setLayoutParams(layoutParams); insert = true; } - mEmptyView.removeAllViews(); - mEmptyView.addView(emptyView); + mEmptyLayout.removeAllViews(); + mEmptyLayout.addView(emptyView); mIsUseEmpty = true; if (insert) { if (getEmptyViewCount() == 1) { @@ -894,7 +900,7 @@ public void isUseEmpty(boolean isUseEmpty) { * @return The view to show if the adapter is empty. */ public View getEmptyView() { - return mEmptyView; + return mEmptyLayout; } private int mAutoLoadMoreSize = 1; From bc2f3a14a96d865417d0a8199128e62b3a3b405c Mon Sep 17 00:00:00 2001 From: BlingBling <1109993488@qq.com> Date: Thu, 8 Dec 2016 10:47:44 +0800 Subject: [PATCH 2/2] fix #607 --- .../library/adapter/base/BaseQuickAdapter.java | 16 ++++------------ 1 file changed, 4 insertions(+), 12 deletions(-) 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 5ac692670..14e1c4148 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 @@ -311,12 +311,8 @@ public void setNewData(List data) { * @param position */ public void addData(int position, T data) { - if (0 <= position && position < mData.size()) { - mData.add(position, data); - notifyItemInserted(position + getHeaderLayoutCount()); - } else { - throw new ArrayIndexOutOfBoundsException("inserted position most greater than 0 and less than data size"); - } + mData.add(position, data); + notifyItemInserted(position + getHeaderLayoutCount()); } /** @@ -333,12 +329,8 @@ public void addData(T data) { * @param position */ public void addData(int position, List data) { - if (0 <= position && position < mData.size()) { - mData.addAll(position, data); - notifyItemRangeInserted(position + getHeaderLayoutCount(), data.size()); - } else { - throw new ArrayIndexOutOfBoundsException("inserted position most greater than 0 and less than data size"); - } + mData.addAll(position, data); + notifyItemRangeInserted(position + getHeaderLayoutCount(), data.size()); } /**