-
Notifications
You must be signed in to change notification settings - Fork 187
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
List unscrollable with custom Adapter #8
Comments
Setting a boolean so it runs once has fixed it, but I'm not sure what the side effects are: listView.getViewTreeObserver().addOnGlobalLayoutListener(
|
@egfconnor I think the issue relates to the fixed adapter size shown in the example. If you change the dataset (grow or shrink) in the adapter and then call notifyDataSetChanged on the adapter, an IndexOutOfBoundsException is thrown. This is caused by the way @LarsWerkman defined the mItemOffsetY array in the computeScrollY function. As currently defined, the mItemOffestY array is defined ONLY once and the size is based on the initial size of the dataset. To fix it so that it can accept changes in the dataset, change this line: if (mItemOffsetY == null) to if (mItemOffsetY == null || mItemOffsetY.length != mItemCount) That will allow the mItemOffsetY array to be redefined when the dataset changes and should allow it to work with custom adapters (especially cursoradapters and loaders). |
Thanks for the info @bkhall. I will try and test this soon as currently I have went away from using it completely. Will hopefully create a sample that isolates everything to a simple level. |
Thanks @bkhall yeah you could do that I think! |
This is why I think this is not a good starting point in terms of breaking lots of conecpts crucial to ListViews and Adapters. |
@Zordid do you have another solution for implementation? Could you to share it? |
I've tried using your code but it severely lags when using a custom adapter. Looping through every view in computeScrollY() and inflating tons of views seems terribly inefficient and I have no clue how this code could work.
Am I missing something or have you tested this on any other adapter?
The text was updated successfully, but these errors were encountered: