Here I've nested TabLayouts inside a Fragment
which is working so fine for me but not I just want to know how I can switch Tabs of TabLayouts
when MainTabFragment
is not in front of app. I searched for a long time and I found it's possible with findFragmentByTag
but I don't know how I should use it in my case where I have to switch Tabs too. For more I'm writing my code too.
In MainActivity
I'm switching Tabs when MainTabFragment
is in front and calling that Fragment when it's not in front like:
Fragment currentFragment = getSupportFragmentManager().findFragmentById(R.id.frame_container);
if (currentFragment instanceof MainTabFragment) {
//Main Fragment
MainTabFragment.pager.setCurrentItem(1);
// Child Fragment of Main Fragment
TopAdvisoryPagerFragment.pager.setCurrentItem(2);
} else {
new Handler().postDelayed(new Runnable() {
@Override
public void run() {
fragment = new MainTabFragment();
changeFragments();
}
}, 150);
}
mDrawerLayout.closeDrawer(mDrawerList);
public void changeFragments() {
if (fragment != null) {
mPendingRunnable = new Runnable() {
@Override
public void run() {
FragmentManager fragmentManager = getSupportFragmentManager();
final Bundle bundle = new Bundle();
bundle.putInt("pos_next", second_position);
bundle.putInt("pos_end", third_position);
fragment.setArguments(bundle);
fragmentManager.beginTransaction().replace(R.id.frame_container, fragment, "TOP").addToBackStack(null).commit();
}
};
if (mDrawerLayout.isDrawerOpen(mDrawerList)) {
mDrawerLayout.closeDrawer(mDrawerList);
}
} else {
// error in creating fragment
Log.e("MainActivity", "Error in creating fragment");
}
}