8

Tôi đang sử dụng ViewPager với Recyclerview, nhưng vào thời gian tạo ra nó bị treo ...

Tôi đã cố gắng ra AsyncListUtil với Recyclerview.Adapter, và nó hoạt động. Khi tôi chuyển mảnh vỡ sang ViewPager, nó bắt đầu bị rơi như thế này. Bất kỳ thông tin chi tiết nào?

  FATAL EXCEPTION: main 
      Process: com.dekanski.popularmovies, PID: 6554 
      java.lang.NullPointerException: Attempt to read from field 'int android.support.v7.widget.RecyclerView$ItemAnimator$ItemHolderInfo.left' on a null object reference 
      at android.support.v7.widget.SimpleItemAnimator.animateChange(SimpleItemAnimator.java:130) 
      at android.support.v7.widget.RecyclerView.animateChange(RecyclerView.java:3062) 
      at android.support.v7.widget.RecyclerView.dispatchLayout(RecyclerView.java:2924) 
      at android.support.v7.widget.RecyclerView.onLayout(RecyclerView.java:3071) 
      at android.view.View.layout(View.java:15671) 
      at android.view.ViewGroup.layout(ViewGroup.java:5038) 
      at android.support.v4.view.ViewPager.onLayout(ViewPager.java:1627) 
      at android.view.View.layout(View.java:15671) 
      at android.view.ViewGroup.layout(ViewGroup.java:5038) 
      at android.support.design.widget.CoordinatorLayout.layoutChild(CoordinatorLayout.java:1037) 
      at android.support.design.widget.CoordinatorLayout.onLayoutChild(CoordinatorLayout.java:747) 
      at android.support.design.widget.CoordinatorLayout.onLayout(CoordinatorLayout.java:761) 
      at android.view.View.layout(View.java:15671) 
      at android.view.ViewGroup.layout(ViewGroup.java:5038) 
      at android.widget.FrameLayout.layoutChildren(FrameLayout.java:579) 
      at android.widget.FrameLayout.onLayout(FrameLayout.java:514) 
      at android.view.View.layout(View.java:15671) 
      at android.view.ViewGroup.layout(ViewGroup.java:5038) 
      at android.widget.LinearLayout.setChildFrame(LinearLayout.java:1703) 
      at android.widget.LinearLayout.layoutVertical(LinearLayout.java:1557) 
      at android.widget.LinearLayout.onLayout(LinearLayout.java:1466) 
      at android.view.View.layout(View.java:15671) 
      at android.view.ViewGroup.layout(ViewGroup.java:5038) 
      at android.widget.FrameLayout.layoutChildren(FrameLayout.java:579) 
      at android.widget.FrameLayout.onLayout(FrameLayout.java:514) 
      at android.view.View.layout(View.java:15671) 
      at android.view.ViewGroup.layout(ViewGroup.java:5038) 
      at android.widget.LinearLayout.setChildFrame(LinearLayout.java:1703) 
      at android.widget.LinearLayout.layoutVertical(LinearLayout.java:1557) 
      at android.widget.LinearLayout.onLayout(LinearLayout.java:1466) 
      at android.view.View.layout(View.java:15671) 
      at android.view.ViewGroup.layout(ViewGroup.java:5038) 
      at android.widget.FrameLayout.layoutChildren(FrameLayout.java:579) 
      at android.widget.FrameLayout.onLayout(FrameLayout.java:514) 
      at android.view.View.layout(View.java:15671) 
      at android.view.ViewGroup.layout(ViewGroup.java:5038) 
      at android.view.ViewRootImpl.performLayout(ViewRootImpl.java:2086) 
      at android.view.ViewRootImpl.performTraversals(ViewRootImpl.java:1843) 
      at android.view.ViewRootImpl.doTraversal(ViewRootImpl.java:1061) 
      at android.view.ViewRootImpl$TraversalRunnable.run(ViewRootImpl.java:5885) 
      at android.view.Choreographer$CallbackRecord.run(Choreographer.java:767) 
      at android.view.Choreographer.doCallbacks(Choreographer.java:580) 
      at android.view.Choreographer.doFrame(Choreographer.java:550) 
      at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:753) 
      at android.os.Handler.handleCallback(Handler.java:739) 
      at android.os.Handler.dispatchMessage(Handler.java:95) 
      at android.os.Looper.loop(Looper.java:135) 
      at android.app.ActivityThread.main(ActivityThread.java:5254) 
      at java.lang.reflect.Method.invoke(Native Method) 
      at java.lang.reflect.Method.invoke(Method.java:372) 
      at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:903) 
      at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:698) 

Trả lời

2

Tôi đã figured it out ... Tôi missied bao gồm ứng dụng: layout_behavior = "@ string/appbar_scrolling_view_behavior" để ViewPager, vì vậy CoordinatorLayout không biết làm thế nào để làm điều đó là công việc một cách chính xác.

+1

Dường như lỗi trong Thư viện hỗ trợ mới 23.1 nơi ItemHolderInfo được giới thiệu. Tôi không gặp sự cố này trước khi cập nhật lên 23.1. – WindRider

+1

Bạn có liên kết đến báo cáo lỗi AOSP không? – Eefret

+0

Dường như cố định trên 23.1.1, bạn nên thử nó. –

1

Sau khi thay thế tất cả các cuộc gọi đến RecyclerView.Adapter.notifyDataSetChanged() với notifyItem{Inserted,Removed,...} biến thể cụ thể hơn, các vụ tai nạn dường như đã biến mất cho tôi.

4

Dường như đã được sửa trong phiên bản hỗ trợ 23.2.1

+0

3 giờ xuống cống: ( –

+0

Tai nạn tương tự được quan sát thấy trong khỉ ngay cả sau khi sử dụng 23.2.1 –

0

Vấn đề của nó với 23.2.0. Sử dụng 23.2.1:

compile 'com.android.support:design:23.2.1' 
Các vấn đề liên quan