FragmentStatePagerIssueExample
FragmentStatePagerIssueExample copied to clipboard
Be careful with findFragmentById() to find fragments inside a FragmentStatePagerAdapter
Hi,
I found your blog post while searching for my own bug with FragmentStatePagerAdapter
.
So I'll share my experience...
You can test this bug on support library 23.1.1
:
- Put a
ViewPager
on your activity and use aFragmentStatePagerAdapter
as adapter, which provides a list of fragments. - Each fragment saves its own index within the adapter in its arguments (you provide that index).
- On each fragment, put a button. When a button is clicked, you get the fragment manager, and call
findFragmentById()
with the current fragment ID (viagetId()
). - Take the result fragment, get the index back to compare it to current fragment index.
The bug is: findFragmentById()
returns random fragment. The index number is wrong in most case.
So be careful :-)
Thanks for the tip. I haven't touched this in years, but I'll leave this open so hopefully anyone else who comes across this can benefit from your experiences.