Comments (8)
I'm seeing something very similar. It doesn't happen every time, but I did notice that the viewpager was showing the correct view from onResume, but the indicator wasn't on the correct item, it was reset to the first index.
09-12 14:44:28.484 E/AndroidRuntime( 3678): FATAL EXCEPTION: main
09-12 14:44:28.484 E/AndroidRuntime( 3678): java.lang.IndexOutOfBoundsException: Invalid index 0, size is 0
09-12 14:44:28.484 E/AndroidRuntime( 3678): at java.util.ArrayList.throwIndexOutOfBoundsException(ArrayList.java:257)
09-12 14:44:28.484 E/AndroidRuntime( 3678): at java.util.ArrayList.get(ArrayList.java:311)
09-12 14:44:28.484 E/AndroidRuntime( 3678): at android.widget.HeaderViewListAdapter.getView(HeaderViewListAdapter.java:225)
09-12 14:44:28.484 E/AndroidRuntime( 3678): at android.widget.AbsListView.obtainView(AbsListView.java:1430)
09-12 14:44:28.484 E/AndroidRuntime( 3678): at android.widget.ListView.measureHeightOfChildren(ListView.java:1216)
09-12 14:44:28.484 E/AndroidRuntime( 3678): at android.widget.ListView.onMeasure(ListView.java:1127)
09-12 14:44:28.484 E/AndroidRuntime( 3678): at android.view.View.measure(View.java:8313)
09-12 14:44:28.484 E/AndroidRuntime( 3678): at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:3138)
09-12 14:44:28.484 E/AndroidRuntime( 3678): at android.widget.LinearLayout.measureChildBeforeLayout(LinearLayout.java:1017)
09-12 14:44:28.484 E/AndroidRuntime( 3678): at android.widget.LinearLayout.measureVertical(LinearLayout.java:386)
09-12 14:44:28.484 E/AndroidRuntime( 3678): at android.widget.LinearLayout.onMeasure(LinearLayout.java:309)
09-12 14:44:28.484 E/AndroidRuntime( 3678): at android.view.View.measure(View.java:8313)
09-12 14:44:28.484 E/AndroidRuntime( 3678): at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:3138)
09-12 14:44:28.484 E/AndroidRuntime( 3678): at android.widget.FrameLayout.onMeasure(FrameLayout.java:250)
09-12 14:44:28.484 E/AndroidRuntime( 3678): at android.view.View.measure(View.java:8313)
09-12 14:44:28.484 E/AndroidRuntime( 3678): at android.support.v4.view.ViewPager.onMeasure(ViewPager.java:595)
09-12 14:44:28.484 E/AndroidRuntime( 3678): at android.view.View.measure(View.java:8313)
09-12 14:44:28.484 E/AndroidRuntime( 3678): at android.widget.RelativeLayout.measureChild(RelativeLayout.java:566)
09-12 14:44:28.484 E/AndroidRuntime( 3678): at android.widget.RelativeLayout.onMeasure(RelativeLayout.java:381)
09-12 14:44:28.484 E/AndroidRuntime( 3678): at android.view.View.measure(View.java:8313)
09-12 14:44:28.484 E/AndroidRuntime( 3678): at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:3138)
09-12 14:44:28.484 E/AndroidRuntime( 3678): at android.widget.FrameLayout.onMeasure(FrameLayout.java:250)
09-12 14:44:28.484 E/AndroidRuntime( 3678): at android.view.View.measure(View.java:8313)
09-12 14:44:28.484 E/AndroidRuntime( 3678): at android.widget.LinearLayout.measureVertical(LinearLayout.java:531)
09-12 14:44:28.484 E/AndroidRuntime( 3678): at android.widget.LinearLayout.onMeasure(LinearLayout.java:309)
09-12 14:44:28.484 E/AndroidRuntime( 3678): at android.view.View.measure(View.java:8313)
09-12 14:44:28.484 E/AndroidRuntime( 3678): at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:3138)
09-12 14:44:28.484 E/AndroidRuntime( 3678): at android.widget.FrameLayout.onMeasure(FrameLayout.java:250)
09-12 14:44:28.484 E/AndroidRuntime( 3678): at android.view.View.measure(View.java:8313)
09-12 14:44:28.484 E/AndroidRuntime( 3678): at android.view.ViewRoot.performTraversals(ViewRoot.java:839)
09-12 14:44:28.484 E/AndroidRuntime( 3678): at android.view.ViewRoot.handleMessage(ViewRoot.java:1859)
09-12 14:44:28.484 E/AndroidRuntime( 3678): at android.os.Handler.dispatchMessage(Handler.java:99)
09-12 14:44:28.484 E/AndroidRuntime( 3678): at android.os.Looper.loop(Looper.java:130)
09-12 14:44:28.484 E/AndroidRuntime( 3678): at android.app.ActivityThread.main(ActivityThread.java:3683)
09-12 14:44:28.484 E/AndroidRuntime( 3678): at java.lang.reflect.Method.invokeNative(Native Method)
09-12 14:44:28.484 E/AndroidRuntime( 3678): at java.lang.reflect.Method.invoke(Method.java:507)
09-12 14:44:28.484 E/AndroidRuntime( 3678): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:839)
09-12 14:44:28.484 E/AndroidRuntime( 3678): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:597)
09-12 14:44:28.484 E/AndroidRuntime( 3678): at dalvik.system.NativeStart.main(Native Method)
from viewpagerindicator.
@leowhiterussian: Are you using version 1.0 or a specific commit? Line 304 doesn't seem to line up with 1.0 nor the current dev
branch. There is a lot of calls to ArrayList.get()
in onDraw
and I am trying to pin down exactly which one(s) are going bad.
@neekers: That stacktrace doesn't seem to be related to the library but rather having something to do with the header view on a ListView
.
from viewpagerindicator.
@JakeWharton I believe I am using 1.0. Sorry I forgot that I added some of my own code, which changed the line numbers. It is happening in onDraw, whenever it tries to do bounds.get( ). For whatever reason it seems that GC clears the titles at some point, but the position is remember. So it tries to get the 5th position of a 1 length list. I have mitigated the crash by surrounding all the bounds.get( ) calls with try/catch . Was hoping for a better solution than that though.
from viewpagerindicator.
Not sure why this issue was closed as reading through the comments there doesn't seem to be a permanent solution only a temporary patch with try/catch clauses. Perhaps I've overlooked something? This might also be same as issue #24 - #24 ...
I'm also experiencing this issue, although right now the occurrence is not as common.
Stacktrace - Case #1:
java.lang.IndexOutOfBoundsException: Invalid index 9, size is 9
1 at java.util.ArrayList.throwIndexOutOfBoundsException(ArrayList.java:251)
2 at java.util.ArrayList.get(ArrayList.java:304)
3 at com.viewpagerindicator.TitlePageIndicator.onDraw(TitlePageIndicator.java:319)
Stacktrace - Case #2:
java.lang.IndexOutOfBoundsException: Invalid index 10, size is 7
1 at java.util.ArrayList.throwIndexOutOfBoundsException(ArrayList.java:257)
2 at java.util.ArrayList.get(ArrayList.java:311)
3 at com.viewpagerindicator.TitlePageIndicator.onDraw(TitlePageIndicator.java:319)
Line 319 from TitlePageIndicator.class:
RectF curPageBound = bounds.get(mCurrentPage);
Seems to be the same issue already mentioned in this thread, onResume triggers an incorrect value to be pulled when bounds.get method.
Is there a better way to fix this other than throw try/clause statements around it and silently drop the error?
from viewpagerindicator.
This issue was closed because it indeed was the same as #24 and a fix was added and released as 2.1.0.
from viewpagerindicator.
Thank you! This project is very very helpful!
Will update on my end.
from viewpagerindicator.
@JakeWharton : I still face this strange indexoutofbound exception with the latest version of 2.3.1. I am not sure what causes it. Also i have embedded the stacktrace of it below. Hoping for better response. Thanks.
07-31 15:32:10.242: W/System.err(6720): java.lang.IndexOutOfBoundsException: Invalid index 4, size is 1
07-31 15:32:10.247: W/System.err(6720): at java.util.ArrayList.throwIndexOutOfBoundsException(ArrayList.java:251)
07-31 15:32:10.247: W/System.err(6720): at java.util.ArrayList.get(ArrayList.java:304)
07-31 15:32:10.247: W/System.err(6720): at android.widget.HeaderViewListAdapter.getView(HeaderViewListAdapter.java:225)
07-31 15:32:10.247: W/System.err(6720): at android.widget.AbsListView.obtainView(AbsListView.java:2452)
07-31 15:32:10.247: W/System.err(6720): at android.widget.ListView.makeAndAddView(ListView.java:1775)
07-31 15:32:10.247: W/System.err(6720): at android.widget.ListView.fillDown(ListView.java:678)
07-31 15:32:10.247: W/System.err(6720): at android.widget.ListView.fillSpecific(ListView.java:1336)
07-31 15:32:10.247: W/System.err(6720): at android.widget.ListView.layoutChildren(ListView.java:1606)
07-31 15:32:10.247: W/System.err(6720): at android.widget.AbsListView.onLayout(AbsListView.java:2303)
07-31 15:32:10.247: W/System.err(6720): at android.view.View.layout(View.java:14063)
07-31 15:32:10.247: W/System.err(6720): at android.view.ViewGroup.layout(ViewGroup.java:4655)
07-31 15:32:10.247: W/System.err(6720): at android.widget.LinearLayout.setChildFrame(LinearLayout.java:1655)
07-31 15:32:10.247: W/System.err(6720): at android.widget.LinearLayout.layoutVertical(LinearLayout.java:1513)
07-31 15:32:10.247: W/System.err(6720): at android.widget.LinearLayout.onLayout(LinearLayout.java:1426)
07-31 15:32:10.247: W/System.err(6720): at android.view.View.layout(View.java:14063)
07-31 15:32:10.247: W/System.err(6720): at android.view.ViewGroup.layout(ViewGroup.java:4655)
07-31 15:32:10.247: W/System.err(6720): at android.widget.FrameLayout.onLayout(FrameLayout.java:448)
07-31 15:32:10.247: W/System.err(6720): at android.view.View.layout(View.java:14063)
07-31 15:32:10.247: W/System.err(6720): at android.view.ViewGroup.layout(ViewGroup.java:4655)
07-31 15:32:10.247: W/System.err(6720): at android.support.v4.view.ViewPager.onLayout(ViewPager.java:1520)
07-31 15:32:10.247: W/System.err(6720): at android.view.View.layout(View.java:14063)
07-31 15:32:10.247: W/System.err(6720): at android.view.ViewGroup.layout(ViewGroup.java:4655)
07-31 15:32:10.247: W/System.err(6720): at android.widget.LinearLayout.setChildFrame(LinearLayout.java:1655)
07-31 15:32:10.252: W/System.err(6720): at android.widget.LinearLayout.layoutVertical(LinearLayout.java:1513)
07-31 15:32:10.252: W/System.err(6720): at android.widget.LinearLayout.onLayout(LinearLayout.java:1426)
07-31 15:32:10.252: W/System.err(6720): at android.view.View.layout(View.java:14063)
07-31 15:32:10.252: W/System.err(6720): at android.view.ViewGroup.layout(ViewGroup.java:4655)
07-31 15:32:10.252: W/System.err(6720): at android.widget.FrameLayout.onLayout(FrameLayout.java:448)
07-31 15:32:10.252: W/System.err(6720): at android.view.View.layout(View.java:14063)
07-31 15:32:10.252: W/System.err(6720): at android.view.ViewGroup.layout(ViewGroup.java:4655)
07-31 15:32:10.252: W/System.err(6720): at android.widget.LinearLayout.setChildFrame(LinearLayout.java:1655)
07-31 15:32:10.252: W/System.err(6720): at android.widget.LinearLayout.layoutVertical(LinearLayout.java:1513)
07-31 15:32:10.257: W/System.err(6720): at android.widget.LinearLayout.onLayout(LinearLayout.java:1426)
07-31 15:32:10.257: W/System.err(6720): at android.view.View.layout(View.java:14063)
07-31 15:32:10.257: W/System.err(6720): at android.view.ViewGroup.layout(ViewGroup.java:4655)
07-31 15:32:10.257: W/System.err(6720): at android.widget.FrameLayout.onLayout(FrameLayout.java:448)
07-31 15:32:10.257: W/System.err(6720): at android.view.View.layout(View.java:14063)
07-31 15:32:10.257: W/System.err(6720): at android.view.ViewGroup.layout(ViewGroup.java:4655)
07-31 15:32:10.257: W/System.err(6720): at android.view.ViewRootImpl.performLayout(ViewRootImpl.java:2017)
07-31 15:32:10.257: W/System.err(6720): at android.view.ViewRootImpl.performTraversals(ViewRootImpl.java:1838)
07-31 15:32:10.257: W/System.err(6720): at android.view.ViewRootImpl.doTraversal(ViewRootImpl.java:1131)
07-31 15:32:10.257: W/System.err(6720): at android.view.ViewRootImpl$TraversalRunnable.run(ViewRootImpl.java:4611)
07-31 15:32:10.257: W/System.err(6720): at android.view.Choreographer$CallbackRecord.run(Choreographer.java:725)
07-31 15:32:10.257: W/System.err(6720): at android.view.Choreographer.doCallbacks(Choreographer.java:555)
07-31 15:32:10.257: W/System.err(6720): at android.view.Choreographer.doFrame(Choreographer.java:525)
07-31 15:32:10.257: W/System.err(6720): at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:711)
07-31 15:32:10.257: W/System.err(6720): at android.os.Handler.handleCallback(Handler.java:615)
07-31 15:32:10.257: W/System.err(6720): at android.os.Handler.dispatchMessage(Handler.java:92)
07-31 15:32:10.257: W/System.err(6720): at android.os.Looper.loop(Looper.java:137)
07-31 15:32:10.257: W/System.err(6720): at android.app.ActivityThread.main(ActivityThread.java:4898)
07-31 15:32:10.257: W/System.err(6720): at java.lang.reflect.Method.invokeNative(Native Method)
07-31 15:32:10.257: W/System.err(6720): at java.lang.reflect.Method.invoke(Method.java:511)
07-31 15:32:10.257: W/System.err(6720): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1008)
07-31 15:32:10.257: W/System.err(6720): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:775)
07-31 15:32:10.257: W/System.err(6720): at dalvik.system.NativeStart.main(Native Method)
from viewpagerindicator.
same issue
java.lang.IndexOutOfBoundsException: Invalid index 1, size is 1
1 at java.util.ArrayList.throwIndexOutOfBoundsException(ArrayList.java:251)
2 at java.util.ArrayList.get(ArrayList.java:304)
3 at android.support.v4.view.ViewPager.getChildDrawingOrder(ViewPager.java:681)
4 at android.view.ViewGroup.dispatchDraw(ViewGroup.java:2893)
5 at android.view.View.draw(View.java:13843)
6 at android.support.v4.view.ViewPager.draw(ViewPager.java:2259)
7 at android.view.View.getDisplayList(View.java:12765)
8 at android.view.View.getDisplayList(View.java:12809)
9 at android.view.View.draw(View.java:13548)
10 at android.view.ViewGroup.drawChild(ViewGroup.java:3026)
11 at android.view.ViewGroup.dispatchDraw(ViewGroup.java:2888)
12 at android.view.View.draw(View.java:13843)
13 at android.widget.FrameLayout.draw(FrameLayout.java:467)
14 at android.view.View.getDisplayList(View.java:12765)
15 at android.view.View.getDisplayList(View.java:12809)
16 at android.view.View.draw(View.java:13548)
17 at android.view.ViewGroup.drawChild(ViewGroup.java:3026)
18 at android.view.ViewGroup.dispatchDraw(ViewGroup.java:2888)
19 at android.view.View.getDisplayList(View.java:12763)
20 at android.view.View.getDisplayList(View.java:12809)
21 at android.view.View.draw(View.java:13548)
22 at android.view.ViewGroup.drawChild(ViewGroup.java:3026)
23 at android.view.ViewGroup.dispatchDraw(ViewGroup.java:2888)
24 at android.view.View.getDisplayList(View.java:12763)
25 at android.view.View.getDisplayList(View.java:12809)
26 at android.view.View.draw(View.java:13548)
27 at android.view.ViewGroup.drawChild(ViewGroup.java:3026)
28 at android.view.ViewGroup.dispatchDraw(ViewGroup.java:2888)
29 at android.view.View.getDisplayList(View.java:12763)
30 at android.view.View.getDisplayList(View.java:12809)
31 at android.view.View.draw(View.java:13548)
32 at android.view.ViewGroup.drawChild(ViewGroup.java:3026)
33 at android.support.v4.widget.DrawerLayout.drawChild(DrawerLayout.java:1229)
34 at android.view.ViewGroup.dispatchDraw(ViewGroup.java:2888)
35 at android.view.View.draw(View.java:13843)
36 at android.view.View.getDisplayList(View.java:12765)
37 at android.view.View.getDisplayList(View.java:12809)
38 at android.view.View.draw(View.java:13548)
39 at android.view.ViewGroup.drawChild(ViewGroup.java:3026)
40 at android.view.ViewGroup.dispatchDraw(ViewGroup.java:2888)
41 at android.view.View.getDisplayList(View.java:12763)
42 at android.view.View.getDisplayList(View.java:12809)
43 at android.view.View.draw(View.java:13548)
44 at android.view.ViewGroup.drawChild(ViewGroup.java:3026)
45 at android.view.ViewGroup.dispatchDraw(ViewGroup.java:2888)
46 at android.view.View.getDisplayList(View.java:12763)
47 at android.view.View.getDisplayList(View.java:12809)
48 at android.view.View.draw(View.java:13548)
49 at android.view.ViewGroup.drawChild(ViewGroup.java:3026)
50 at android.view.ViewGroup.dispatchDraw(ViewGroup.java:2888)
51 at android.view.View.getDisplayList(View.java:12763)
52 at android.view.View.getDisplayList(View.java:12809)
53 at android.view.View.draw(View.java:13548)
54 at android.view.ViewGroup.drawChild(ViewGroup.java:3026)
55 at android.view.ViewGroup.dispatchDraw(ViewGroup.java:2888)
56 at android.view.View.getDisplayList(View.java:12763)
57 at android.view.View.getDisplayList(View.java:12809)
58 at android.view.View.draw(View.java:13548)
59 at android.view.ViewGroup.drawChild(ViewGroup.java:3026)
60 at android.view.ViewGroup.dispatchDraw(ViewGroup.java:2888)
61 at android.view.View.draw(View.java:13843)
62 at android.widget.FrameLayout.draw(FrameLayout.java:467)
63 at com.android.internal.policy.impl.PhoneWindow$DecorView.draw(PhoneWindow.java:2254)
64 at android.view.View.getDisplayList(View.java:12765)
65 at android.view.View.getDisplayList(View.java:12809)
66 at android.view.HardwareRenderer$GlRenderer.draw(HardwareRenderer.java:1249)
67 at android.view.ViewRootImpl.draw(ViewRootImpl.java:2513)
68 at android.view.ViewRootImpl.performDraw(ViewRootImpl.java:2380)
69 at android.view.ViewRootImpl.performTraversals(ViewRootImpl.java:2182)
70 at android.view.ViewRootImpl.doTraversal(ViewRootImpl.java:1165)
71 at android.view.ViewRootImpl$TraversalRunnable.run(ViewRootImpl.java:4962)
72 at android.view.Choreographer$CallbackRecord.run(Choreographer.java:776)
73 at android.view.Choreographer.doCallbacks(Choreographer.java:579)
74 at android.view.Choreographer.doFrame(Choreographer.java:548)
75 at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:762)
76 at android.os.Handler.handleCallback(Handler.java:800)
77 at android.os.Handler.dispatchMessage(Handler.java:100)
78 at android.os.Looper.loop(Looper.java:194)
79 at android.app.ActivityThread.main(ActivityThread.java:5455)
80 at java.lang.reflect.Method.invokeNative(Native Method)
81 at java.lang.reflect.Method.invoke(Method.java:525)
82 at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:966)
83 at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:733)
84 at dalvik.system.NativeStart.main(Native Method)
from viewpagerindicator.
Related Issues (20)
- Image from Network support..? HOT 2
- Provide Gradle packaging support
- CirclePageIndicator is drawn outside while pager is swiped to the last position. HOT 1
- CirclePageIndicator doesn't support edit mode HOT 3
- Mark deprecated HOT 5
- There has an error?How do it?Can you give me an answer? HOT 1
- NPE HOT 7
- Indicator is not visible on 5.0 and greater HOT 4
- build gradle dependency missing HOT 4
- Inifivite ViewPager
- Disable tab click dynamically with ViewPager
- Vertical ViewpagerIndicator HOT 3
- Indicator by itens percentage
- cannot resolve symbol 'TestAdapter' in pager.setAdapter(new TestAdapter(getSupportFragmentManager()));
- Disable swipe in CirclePageIndicator HOT 1
- Crash when using color values from styles. HOT 15
- java.lang.NullPointerException HOT 2
- LinePageIndicator --> FloatMath.ceil
- NullPointerException, call beginFakeDrag before fakeDragBy
- listview的ViewPagerIndicator有手势BUG
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from viewpagerindicator.