diff options
Diffstat (limited to 'android/support/v7/widget/RecyclerView.java')
-rw-r--r-- | android/support/v7/widget/RecyclerView.java | 22 |
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; } |