Nach meinem Code für untere Navigationsansicht Artikel istFragment auf der unteren Navigationsansicht Artikel neu gewählte
ausgewähltbottomNavigationView.setOnNavigationItemSelectedListener(new BottomNavigationView.OnNavigationItemSelectedListener() {
@Override
public boolean onNavigationItemSelected(@NonNull MenuItem item) {
Fragment fragment = null;
switch (item.getItemId()) {
case R.id.action_one:
// Switch to page one
fragment = FragmentA.newInstance();
break;
case R.id.action_two:
// Switch to page two
fragment = FragmentB.newInstance();
break;
case R.id.action_three:
// Switch to page three
fragment = FragmentC.newInstance();
break;
}
getSupportFragmentManager().beginTransaction().replace(R.id.container,fragment,"TAG").commit();
return true;
}
});
Nun mein Problem jedes Mal Fragment wird neu erstellt wird und nicht wollen, Fragment neu erstellt werden jedes Mal habe ich auch versucht, addToBackStack (null) hinzuzufügen, aber es in diesem Fall auf der Rückseite der Taste gedrückt halten Fragmente vom Stapel knallen, die ich nicht will.
Gibt es eine Möglichkeit, ohne neu zu erstellen Fragment
Um das zu vermeiden, habe ich eine Karte erstellen: 'Map' und jeder Fragment haben eine statische ID. Ich erstelle alle Fragmente in 'onCreate' der' Activity'. Aber es ist nicht zu empfehlen. Sie können das Fragment im 'Backstack' mit einem eindeutigen Tag wie' Fragment.class.getSimpleName() 'hinzufügen, dann finden Sie es mit' findFragmentByTag' und committen ihn erneut. Achten Sie darauf, jedes 'Fragment' einmal zum' Backstack' hinzuzufügen. –
Hi Raphael, wie ich schon sagte Ich möchte es nicht zum Backstack hinzufügen, da es bei der Back-Implementierung stört – apk
Dafür kann 'onBackPressed() 'überschrieben werden in deiner 'Aktivität'. Kommentar 'super.onBackPressed()' –