Here is my TabListener:
public class TabListener<T extends Fragment> implements android.support.v7.app.ActionBar.TabListener {
private Fragment mFragment;
private final Activity mActivity;
private final String mTag;
private final Class<T> mClass;
public TabListener(Activity activity, String tag, Class<T> cl) {
mActivity = activity;
mTag = tag;
mClass = cl;
}
@Override
public void onTabReselected(Tab arg0, FragmentTransaction arg1) {
// TODO Auto-generated method stub
}
@Override
public void onTabSelected(Tab tab, FragmentTransaction ft) {
mFragment = ((FragmentActivity) mActivity).getSupportFragmentManager().findFragmentByTag(mTag); // add this
if (mFragment == null){
mFragment = android.support.v4.app.Fragment.instantiate(mActivity, mClass.getName());
ft.add(android.R.id.content,mFragment,mTag);
} else {
ft.attach(mFragment);
}
}
@Override
public void onTabUnselected(Tab tab, FragmentTransaction ft) {
mFragment = ((FragmentActivity) mActivity).getSupportFragmentManager().findFragmentByTag(mTag); // add this
if (mFragment != null) {
//Toast.makeText(mActivity, "detached", Toast.LENGTH_SHORT).show();
ft.detach(mFragment);
}
}
}
And a part of my Activity:
public class RoadMapActivity extends ActionBarActivity {
ListView generalRoadmapList;
ListView mainRoadmapList;
android.support.v7.app.ActionBar actionBar;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_roadmap);
actionBar = getSupportActionBar();
actionBar.setDisplayShowTitleEnabled(false);
actionBar.setDisplayUseLogoEnabled(true);
actionBar.setNavigationMode(ActionBar.NAVIGATION_MODE_TABS);
Tab generalTab = actionBar.newTab()
.setText("General")
.setTabListener(new TabListener<GeneralListFragment>(this, "general", GeneralListFragment.class));
actionBar.addTab(generalTab);
Tab myTab = actionBar.newTab()
.setText("My")
.setTabListener(new TabListener<MyListFragment>(this, "my", MyListFragment.class));
actionBar.addTab(myTab);
}
I tried to change the viewGroup from android.R.id.content to a custom view group from the Activity's layout, the next thing will happens:
I have two tabs, A and B. After starting the activity the active tab is A and the content is fragment A. If switching to B, the tab B gets active, but the content is still fragment A. Than change back to tab A, and the content will be fragment B. Change to tab B, content is fragment A... without showing the other fragment behind, but whit a changed content.
I've tried everithing i found on google and here, without any sucess. Does anybody have an idea?