Ich habe eine Aktivität, die einen ViewPager enthält, der 5 Fragmente enthält, und ein unteres Layout mit einer Schaltfläche, die zwischen Ansichtsseiten wechseln kann. Jedes dieser Fragmente kann jedoch ein neues Fragment I öffnen ist ersetzt Fragmente im MainActivity wie die folgenden:Verwenden von onBackPressed mit sichtbarem Fragment
FragmentManager fragmentManager = getSupportFragmentManager();
Fragment placeDetailsFragment = new PlaceDetailsFragment();
fragmentManager.beginTransaction().setCustomAnimations(R.anim.right_in, R.anim.left_out, R.anim.left_in, R.anim.right_out).replace(rootViewID, placeDetailsFragment, fragmentTag.getKey()).addToBackStack(fragmentTag.getKey()).commit();
rootViewId wo die ID der Wurzel in Layout der Seite ist.
die Idee ist, dass ich von Seite 1 in dem viewpager 1 und 2 von Seite 2 bis Fragment Fragmente eingeben .. etc ..
Ich möchte in der Lage sein, wenn ich die Hardware-Zurück-Taste in Fragmente drücken 1, um zurück zu Seite 1 und wenn ich in Fragment 2 bin, um zurück zu Seite 2, aber die Standardeinstellung onBackPressed Verhalten nur das letzte Fragment zum Stapel hinzugefügt, egal welche sichtbar ist, wenn ich also Fragment 1 dann Fragment 2 öffnen dann komme ich zurück zu Seite 1 von den unteren Ansichten in der oben genannten Aktivität und drücke zurück, es knallt Fragment 2, wenn es Fragment 1 knacken sollte, weil es momentan sichtbar ist.
wie kann ich das lösen?
Sie müssen möglicherweise den onBackStackChangedListener implementieren und dort Ihre eigene Logik hinzufügen. –
@AndreiT können Sie mir bitte ein Beispiel oder einen Link zur Verfügung stellen? – EyadMhanna
Können Sie Ihre Situation besser erklären? Es ist schwer zu verstehen – BlueMango