Ich versuche, ein Fragment von einem ViewPager zu ersetzen, und ich kenne nicht die beste Möglichkeit, das zu tun.Ersetzen Sie Fragment in ViewPager, altes Fragment entfernt nicht
Um das Fragment ich diesen Code verwenden, um zu ändern:
Fragment productDetailFragment = RetarFragment.newInstance(null, null);
FragmentTransaction transaction = getChildFragmentManager().beginTransaction();
transaction.replace(R.id.root_frame, productDetailFragment).commit();
Wo R.id.root_frame ist der Behälter des i ersetzen Fragment und es ist ein FrameLayout.
Das Problem ist, dass wenn ich die App ausführen, das Fragment gut läuft, aber es ist über das alte Fragment, das entfernt werden sollte.
Eine bessere Lösung, das zu tun?
des Adapters ViewPager ist ein FragmentStatePagerAdapter
public class SectionsPagerAdapter extends FragmentStatePagerAdapter implements Serializable{
public static final int MENU_RETAR = 2;
public static final int MENU_BATALLA = 1;
int MENU_ACTUAL = MENU_BATALLA;
public SectionsPagerAdapter(FragmentManager fm) {
super(fm);
}
@Override
public Fragment getItem(int position) {
// getItem is called to instantiate the fragment for the given page.
// Return a PlaceholderFragment (defined as a static inner class below).
switch (position){
case 0: return new TimelineFragment();
case 1: return new SearchFragment();
case 2:
if(MENU_ACTUAL == MENU_RETAR){
return new RetarFragment();
}else{
return new MenuBatallaFragment();
}
case 3: return new NotificacionesFragment();
case 4: return new PerfilFragment().newInstance(this);
default:
return new TimelineFragment();
}
}
@Override
public int getItemPosition(Object object) {
return POSITION_NONE;
}
@Override
public int getCount() {
// Show 3 total pages.
return 5;
}
@Override
public CharSequence getPageTitle(int position) {
switch (position) {
case 0:
return null;
case 1:
return null;
case 2:
return null;
case 3:
return null;
case 4:
return null;
}
return null;
}
}
Ok, aber ... wenn ich das Fragment entfernen? –
Wenn ich das Fragment vor dem Ersetzen entferne, ist das resultierende Fragment leer –