FragmentPagerAdapter notifyDataSetChanged not working
What Nik Myers is saying is correct. However there is a piece missing. When notifyDataSetChanged is called, the method getItemPosition is called. You need to override this to get the fragments to reload.
@Override
public int getItemPosition(Object object) {
// Causes adapter to reload all Fragments when
// notifyDataSetChanged is called
return POSITION_NONE;
}
I'm not sure about this, but you can try to use FragmentStatePagerAdapter
instead of FragmentPagerAdapter
. The thing is, i've also run into this issue, and it helped me
I have faced the similar problem when I was working on my last project. So I found few Solution.
by overriding getItemPosition in the pager adaptor but this is not a good idea.
@Override public int getItemPosition(Object object) { // it will recreate all Fragments when // notifyDataSetChanged is called return POSITION_NONE; }
The second one is cabezas Solution.
Most Stable solution override getItemPosition in below fashion:
@Override public int getItemPosition(Object object) { if (object instanceof MyFragment) { // Create a new method notifyUpdate() in your fragment // it will get call when you invoke // notifyDatasetChaged(); ((MyFragment) object).notifyUpdate(); } //don't return POSITION_NONE, avoid fragment recreation. return super.getItemPosition(object); }