fragmentieren I haben eine Aktivität und 3 Fragmente A, B, C wenn app beginnt es Haupt Fragment A dann von Fragment A i bin Navigation zu Fragment B hält und von Fragment B bis Fragment C. Code funktioniert und es öffnet sich Fragment C von Fragment B, aber es eröffnet erstes Fragment A und nur dann Fragment C. Warum und wie kann ich das beheben? Benötige ich eine weitere Aktivität, um die Fragmente B, C zu hosten?etwas nicht in Ordnung, wenn sie von der Navigation Fragment
Methode, die Fragmente schaltet:
private Fragment contentFragment;
public void switchContent(Fragment fragment, String tag){
FragmentManager fragmentManager = getActivity().getSupportFragmentManager();
while (fragmentManager.popBackStackImmediate());
if (fragment != null){
FragmentTransaction transaction = fragmentManager
.beginTransaction();
transaction.replace(R.id.content_frame,fragment,tag);
if (!(fragment instanceof FragmentB)){
transaction.addToBackStack(tag);
}
transaction.addToBackStack(tag);
transaction.commit();
contentFragment = fragment;
}
}
R.id.content_frame ist id von Layout, das auf die AktivitätsetContentView verwendet wird.
Alles was Sie brauchen Fragmente schalten die FragmentTransaction ist und das Verfahren ersetzen. Also, fangen Sie vielleicht an, das Backstack-Zeug zu kommentieren und zu sehen, was passiert –