Update Support7Demos for new RecyclerView additions

Use item range changes instead of full adapter updates

Change-Id: Ia796bdb5138f4762b3fe325da3e5bf02e31042d4
This commit is contained in:
Adam Powell
2014-02-06 12:40:36 -08:00
parent db65481db6
commit 8c433780af

View File

@@ -103,7 +103,7 @@ public class RecyclerViewActivity extends Activity {
for (int i = 0; mFirstPosition + i < count && top < parentBottom; i++, top = bottom) {
View v = recycler.getViewForPosition(adapter, mFirstPosition + i);
addView(v, i);
measureChild(v, 0, 0);
measureChildWithMargins(v, 0, 0);
bottom = top + v.getMeasuredHeight();
v.layout(left, top, right, bottom);
}
@@ -143,7 +143,7 @@ public class RecyclerViewActivity extends Activity {
mFirstPosition--;
View v = recycler.getViewForPosition(adapter, mFirstPosition);
addView(v, 0);
measureChild(v, 0, 0);
measureChildWithMargins(v, 0, 0);
final int bottom = topView.getTop(); // TODO decorated top?
final int top = bottom - v.getMeasuredHeight();
v.layout(left, top, right, bottom);
@@ -164,7 +164,7 @@ public class RecyclerViewActivity extends Activity {
mFirstPosition + getChildCount());
final int top = getChildAt(getChildCount() - 1).getBottom();
addView(v);
measureChild(v, 0, 0);
measureChildWithMargins(v, 0, 0);
final int bottom = top + v.getMeasuredHeight();
v.layout(left, top, right, bottom);
} else {
@@ -196,7 +196,7 @@ public class RecyclerViewActivity extends Activity {
View v = recycler.getViewForPosition(adapter, mFirstPosition);
final int bottom = getChildAt(0).getTop(); // TODO decorated top?
addView(v, 0);
measureChild(v, 0, 0);
measureChildWithMargins(v, 0, 0);
final int top = bottom - v.getMeasuredHeight();
v.layout(left, top, right, bottom);
if (v.isFocusable()) {
@@ -211,7 +211,7 @@ public class RecyclerViewActivity extends Activity {
View v = recycler.getViewForPosition(adapter, mFirstPosition + getChildCount());
final int top = getChildAt(getChildCount() - 1).getBottom();
addView(v);
measureChild(v, 0, 0);
measureChildWithMargins(v, 0, 0);
final int bottom = top + v.getMeasuredHeight();
v.layout(left, top, right, bottom);
if (v.isFocusable()) {
@@ -256,7 +256,7 @@ public class RecyclerViewActivity extends Activity {
}
}
class MyAdapter extends RecyclerView.Adapter {
class MyAdapter extends RecyclerView.Adapter<ViewHolder> {
private int mBackground;
private ArrayList<String> mValues;
@@ -270,7 +270,7 @@ public class RecyclerViewActivity extends Activity {
}
@Override
public RecyclerView.ViewHolder createViewHolder(ViewGroup parent, int viewType) {
public ViewHolder createViewHolder(ViewGroup parent, int viewType) {
final ViewHolder h = new ViewHolder(new TextView(RecyclerViewActivity.this));
h.textView.setMinimumHeight(128);
h.textView.setFocusable(true);
@@ -283,7 +283,7 @@ public class RecyclerViewActivity extends Activity {
final String t = mValues.get(pos);
mValues.set(pos, mValues.get(pos + 1));
mValues.set(pos + 1, t);
notifyDataSetChanged();
notifyItemRangeChanged(pos, 2);
}
}
});
@@ -291,8 +291,8 @@ public class RecyclerViewActivity extends Activity {
}
@Override
public void bindViewHolder(RecyclerView.ViewHolder holder, int position) {
((ViewHolder) holder).textView.setText(mValues.get(position));
public void bindViewHolder(ViewHolder holder, int position) {
holder.textView.setText(mValues.get(position));
}
@Override