I faced this problem myself.
Add a tabListener
to your viewpager first.
In the onTabSelected
method, create an instance of your selected fragment and call onResume()
.
ActionBar.TabListener tabListener = new ActionBar.TabListener() {
@Override
public void onTabUnselected(ActionBar.Tab tab, FragmentTransaction ft) {
}
@Override
public void onTabSelected(ActionBar.Tab tab, FragmentTransaction ft) {
viewPager.setCurrentItem(tab.getPosition());
mContent.setUserVisibleHint(false);
mContent.onPause();
mContent = mAdapter.getItem(tab.getPosition());
mContent.setUserVisibleHint(true);
mContent.onResume();
}
@Override
public void onTabReselected(ActionBar.Tab tab, FragmentTransaction ft) {
}
};
Here, mContent
is the currently selected fragment, and mAdapter
is the viewpager's adapter.