Skip to content

Commit d089250

Browse files
committed
Update positions if only an update is needed and not a recreate, which calls just bind instead of recreating all views
1 parent 3249e90 commit d089250

6 files changed

Lines changed: 15 additions & 11 deletions

File tree

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,7 @@ public void onItemRangeChanged(int positionStart, int itemCount) {
3434
@Override
3535
public void onItemRangeChanged(int positionStart, int itemCount, Object payload) {
3636
super.onItemRangeChanged(positionStart, itemCount, payload);
37-
recreateViews();
37+
updateViews(positionStart, itemCount, payload);
3838
}
3939

4040
@Override

app/src/main/java/com/commit451/adapterlayout/sample/Cheese.java

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,4 +20,8 @@ public int getDrawable() {
2020
public String getName() {
2121
return mName;
2222
}
23+
24+
public void setName(String name) {
25+
mName = name;
26+
}
2327
}

app/src/main/java/com/commit451/adapterlayout/sample/CheeseAdapter.java

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -47,11 +47,11 @@ public void removeLast() {
4747
}
4848
}
4949

50-
public void removeMiddle() {
50+
public void changeMiddle() {
5151
if (!mValues.isEmpty()) {
52-
int indexRemoved = mValues.size()/2;
53-
mValues.remove(indexRemoved);
54-
notifyItemRemoved(indexRemoved);
52+
int index = mValues.size()/2;
53+
mValues.get(index).setName("Swiss");
54+
notifyItemChanged(index);
5555
}
5656
}
5757

app/src/main/java/com/commit451/adapterlayout/sample/CustomAdapterLayoutActivity.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -28,9 +28,9 @@ void onRemoveCheeseClicked() {
2828
mAdapter.removeLast();
2929
}
3030

31-
@OnClick(R.id.remove_middle)
31+
@OnClick(R.id.change_middle)
3232
void onRemoveMiddleClicked() {
33-
mAdapter.removeMiddle();
33+
mAdapter.changeMiddle();
3434
}
3535

3636
@OnClick(R.id.new_adapter)

app/src/main/java/com/commit451/adapterlayout/sample/MainActivity.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -34,9 +34,9 @@ void onRemoveCheeseClicked() {
3434
mAdapter.removeLast();
3535
}
3636

37-
@OnClick(R.id.remove_middle)
37+
@OnClick(R.id.change_middle)
3838
void onRemoveMiddleClicked() {
39-
mAdapter.removeMiddle();
39+
mAdapter.changeMiddle();
4040
}
4141

4242
@OnClick(R.id.new_adapter)

app/src/main/res/layout/activity_main.xml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -43,10 +43,10 @@
4343
android:text="Remove Last" />
4444

4545
<Button
46-
android:id="@+id/remove_middle"
46+
android:id="@+id/change_middle"
4747
android:layout_width="wrap_content"
4848
android:layout_height="wrap_content"
49-
android:text="Remove Middle" />
49+
android:text="Change Middle" />
5050

5151
<Button
5252
android:id="@+id/new_adapter"

0 commit comments

Comments
 (0)