Skip to content

Commit 1015739

Browse files
committed
Merge remote-tracking branch 'origin/master'
2 parents e71bb14 + 4f31236 commit 1015739

File tree

1 file changed

+25
-28
lines changed

1 file changed

+25
-28
lines changed

adapterlayout/src/main/java/com/commit451/adapterlayout/AdapterLayoutDelegate.java

Lines changed: 25 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -153,36 +153,33 @@ private void recreateViews() {
153153
mViewGroup.removeAllViews();
154154
return;
155155
}
156-
for (int i = 0; i < mAdapter.getItemCount() || i < mViewGroup.getChildCount(); i++) {
157-
158-
//Within the bounds of the dataset
159-
if (i < mAdapter.getItemCount()) {
160-
int viewType = mAdapter.getItemViewType(i);
161-
//This means the view could already exist
162-
if (i < mViewGroup.getChildCount()) {
163-
View child = mViewGroup.getChildAt(i);
164-
Integer savedViewType = (Integer) child.getTag(R.id.adapter_layout_list_view_type);
165-
RecyclerView.ViewHolder savedViewHolder = (RecyclerView.ViewHolder) child.getTag(R.id.adapter_layout_list_holder);
166-
167-
if (savedViewType != null && savedViewType == viewType && savedViewHolder != null) {
168-
//perfect, it exists and is the right type, so just bind it
169-
mAdapter.onBindViewHolder(savedViewHolder, i);
170-
} else {
171-
//it already existed, but something was wrong. So remove it and recreate it
172-
addViewAt(viewType, i);
173-
mViewGroup.removeView(child);
174-
}
175-
} else {
176-
//Creating a brand new view
177-
addViewAt(viewType, i);
178-
}
156+
int i;
157+
for (i = 0; i < mAdapter.getItemCount(); i++) {
158+
159+
int viewType = mAdapter.getItemViewType(i);
160+
//This means the view could already exist
161+
if (i < mViewGroup.getChildCount()) {
162+
View child = mViewGroup.getChildAt(i);
163+
Integer savedViewType = (Integer) child.getTag(R.id.adapter_layout_list_view_type);
164+
RecyclerView.ViewHolder savedViewHolder = (RecyclerView.ViewHolder) child.getTag(R.id.adapter_layout_list_holder);
165+
166+
if (savedViewType != null && savedViewType == viewType && savedViewHolder != null) {
167+
//perfect, it exists and is the right type, so just bind it
168+
mAdapter.onBindViewHolder(savedViewHolder, i);
179169
} else {
180-
//Outside the bounds of the dataset, so remove it
181-
if (i < mViewGroup.getChildCount()) {
182-
View child = mViewGroup.getChildAt(i);
183-
mViewGroup.removeView(child);
184-
}
170+
//it already existed, but something was wrong. So remove it and recreate it
171+
addViewAt(viewType, i);
172+
mViewGroup.removeView(child);
185173
}
174+
} else {
175+
//Creating a brand new view
176+
addViewAt(viewType, i);
177+
}
178+
}
179+
180+
//Outside the bounds of the dataset, so remove it
181+
if (i < mViewGroup.getChildCount()) {
182+
mViewGroup.removeViews(i, mViewGroup.getChildCount() - i);
186183
}
187184
}
188185
}

0 commit comments

Comments
 (0)