summaryrefslogtreecommitdiff
path: root/android/support/v7/widget/RecyclerView.java
diff options
context:
space:
mode:
Diffstat (limited to 'android/support/v7/widget/RecyclerView.java')
-rw-r--r--android/support/v7/widget/RecyclerView.java22
1 files changed, 15 insertions, 7 deletions
diff --git a/android/support/v7/widget/RecyclerView.java b/android/support/v7/widget/RecyclerView.java
index a2879796..b195d3c0 100644
--- a/android/support/v7/widget/RecyclerView.java
+++ b/android/support/v7/widget/RecyclerView.java
@@ -2722,7 +2722,7 @@ public class RecyclerView extends ViewGroup implements ScrollingView, NestedScro
removeCallbacks(mItemAnimatorRunner);
mViewInfoStore.onDetach();
- if (ALLOW_THREAD_GAP_WORK) {
+ if (ALLOW_THREAD_GAP_WORK && mGapWorker != null) {
// Unregister with gap worker
mGapWorker.remove(this);
mGapWorker = null;
@@ -6643,11 +6643,19 @@ public class RecyclerView extends ViewGroup implements ScrollingView, NestedScro
* @see #onCreateViewHolder(ViewGroup, int)
*/
public final VH createViewHolder(@NonNull ViewGroup parent, int viewType) {
- TraceCompat.beginSection(TRACE_CREATE_VIEW_TAG);
- final VH holder = onCreateViewHolder(parent, viewType);
- holder.mItemViewType = viewType;
- TraceCompat.endSection();
- return holder;
+ try {
+ TraceCompat.beginSection(TRACE_CREATE_VIEW_TAG);
+ final VH holder = onCreateViewHolder(parent, viewType);
+ if (holder.itemView.getParent() != null) {
+ throw new IllegalStateException("ViewHolder views must not be attached when"
+ + " created. Ensure that you are not passing 'true' to the attachToRoot"
+ + " parameter of LayoutInflater.inflate(..., boolean attachToRoot)");
+ }
+ holder.mItemViewType = viewType;
+ return holder;
+ } finally {
+ TraceCompat.endSection();
+ }
}
/**
@@ -10108,7 +10116,7 @@ public class RecyclerView extends ViewGroup implements ScrollingView, NestedScro
if (vScroll == 0 && hScroll == 0) {
return false;
}
- mRecyclerView.scrollBy(hScroll, vScroll);
+ mRecyclerView.smoothScrollBy(hScroll, vScroll);
return true;
}