FragmentStatePagerIssueExample icon indicating copy to clipboard operation
FragmentStatePagerIssueExample copied to clipboard

Be careful with findFragmentById() to find fragments inside a FragmentStatePagerAdapter

Open ghost opened this issue 9 years ago • 1 comments

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 a FragmentStatePagerAdapter 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 (via getId()).
  • 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 :-)

ghost avatar Jan 05 '16 15:01 ghost

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.

adamsp avatar Jan 05 '16 16:01 adamsp