diff --git a/samples/Support7Demos/res/layout/activity_linear_layout_manager.xml b/samples/Support7Demos/res/layout/activity_linear_layout_manager.xml index f4afe95fa..d671c7356 100644 --- a/samples/Support7Demos/res/layout/activity_linear_layout_manager.xml +++ b/samples/Support7Demos/res/layout/activity_linear_layout_manager.xml @@ -17,15 +17,34 @@ android:orientation="vertical" android:layout_width="match_parent" android:layout_height="match_parent"> - + + + + + + parent, View view, int position, long id) { - mRecyclerView.scrollToPosition(position); + int offset = Integer.MIN_VALUE; + String offsetString = scrollOffset.getText().toString(); + try { + offset = Integer.parseInt(offsetString); + } catch (NumberFormatException ex) { + + } + + if (offset == Integer.MIN_VALUE) { + if (checkBox.isChecked()) { + mRecyclerView.smoothScrollToPosition(position); + } else { + mRecyclerView.scrollToPosition(position); + } + } else { + // ignore offset until we add recycling list view with smooth scroll to offset + mRecyclerView.smoothScrollToPosition(position); + } + } @Override @@ -127,25 +207,28 @@ public class LinearLayoutManagerActivity extends Activity { new ConfigToggle(R.string.checkbox_orientation) { @Override public boolean isChecked() { - return mListLayoutManager.getOrientation() == LinearLayoutManager.HORIZONTAL; + return mListWrapper.getOrientation() == LinearLayoutManager.HORIZONTAL; } @Override public void onChange(boolean newValue) { - mListLayoutManager.setOrientation(newValue ? LinearLayoutManager.HORIZONTAL + mListWrapper.setOrientation(newValue ? LinearLayoutManager.HORIZONTAL : LinearLayoutManager.VERTICAL); - mDividerItemDecoration.setOrientation(mListLayoutManager.getOrientation()); + if (mDividerItemDecoration != null) { + mDividerItemDecoration.setOrientation(mListWrapper.getOrientation()); + } + } }, new ConfigToggle(R.string.checkbox_reverse) { @Override public boolean isChecked() { - return mListLayoutManager.getReverseLayout(); + return mListWrapper.getReverseLayout(); } @Override public void onChange(boolean newValue) { - mListLayoutManager.setReverseLayout(newValue); + mListWrapper.setReverseLayout(newValue); } }, new ConfigToggle(R.string.checkbox_layout_dir) { @@ -164,12 +247,12 @@ public class LinearLayoutManagerActivity extends Activity { new ConfigToggle(R.string.checkbox_stack_from_end) { @Override public boolean isChecked() { - return mListLayoutManager.getStackFromEnd(); + return mListWrapper.getStackFromEnd(); } @Override public void onChange(boolean newValue) { - mListLayoutManager.setStackFromEnd(newValue); + mListWrapper.setStackFromEnd(newValue); } } }; @@ -221,7 +304,6 @@ public class LinearLayoutManagerActivity extends Activity { } - private RecyclerView.Adapter mConfigAdapter = new RecyclerView.Adapter() { @Override public ConfigViewHolder onCreateViewHolder(ViewGroup parent, int viewType) { @@ -240,4 +322,25 @@ public class LinearLayoutManagerActivity extends Activity { } }; + + /** + * To avoid adding interfaces to LayoutManager for the demo, we use this wrapper class to + * call different LayoutManagers + */ + private static interface ListWrapper { + + int getOrientation(); + + void setOrientation(int orientation); + + boolean getReverseLayout(); + + void setReverseLayout(boolean newValue); + + boolean getStackFromEnd(); + + void setStackFromEnd(boolean newValue); + } + + } diff --git a/samples/Support7Demos/src/com/example/android/supportv7/widget/adapter/SimpleStringAdapter.java b/samples/Support7Demos/src/com/example/android/supportv7/widget/adapter/SimpleStringAdapter.java index 110eb626a..a12e79d26 100644 --- a/samples/Support7Demos/src/com/example/android/supportv7/widget/adapter/SimpleStringAdapter.java +++ b/samples/Support7Demos/src/com/example/android/supportv7/widget/adapter/SimpleStringAdapter.java @@ -17,9 +17,9 @@ package com.example.android.supportv7.widget.adapter; import android.content.Context; +import android.graphics.Color; import android.support.v7.widget.RecyclerView; import android.util.TypedValue; -import android.view.View; import android.view.ViewGroup; import android.widget.TextView; @@ -34,16 +34,16 @@ public class SimpleStringAdapter extends RecyclerView.Adapter