Heim > Java > javaLernprogramm > Warum ersetzen sich meine Fragmente in meiner Android-Aktivitätsgruppe nicht gegenseitig?

Warum ersetzen sich meine Fragmente in meiner Android-Aktivitätsgruppe nicht gegenseitig?

Susan Sarandon
Freigeben: 2024-11-25 06:20:15
Original
581 Leute haben es durchsucht

Why Aren't My Fragments Replacing Each Other in My Android Activity Group?

Ersetzen von Fragmenten innerhalb von Aktivitätsgruppen

Das Ersetzen von Fragmenten innerhalb einer Aktivitätsgruppe kann eine komplexe Aufgabe sein, wenn Sie mit dem Android-Fragmentierungs-Framework nicht vertraut sind .

Das Problem

Beim Versuch, a zu ersetzen Wenn Sie ein Fragment innerhalb einer Aktivitätsgruppe mit einem anderen Fragment verbinden, kann es vorkommen, dass der Code scheinbar erfolgreich ausgeführt wird, aber keine visuellen Änderungen auftreten. Dies kann verwirrend sein, da keine Ausnahmemeldungen angezeigt werden.

Die Lösung

Das Problem ergibt sich aus der Tatsache, dass in XML fest codierte Fragmente nicht ersetzt werden können. Stattdessen sollten Fragmente dynamisch hinzugefügt werden, um ein Ersetzen zu ermöglichen.

So fügen Sie Fragmente dynamisch hinzu und ersetzen sie:

  1. Erstellen Sie in der Aktivität ein Layout oder einen Container (z. B. fragment_container), der enthalten sein soll die Fragmente.
  2. Erstellen Sie eine neue Fragmentinstanz.
  3. Erstellen Sie eine FragmentTransaction mit getSupportFragmentManager().
  4. Verwenden Sie „transaction.replace()“, um das aktuelle Fragment im fragment_container durch das neue Fragment zu ersetzen.
  5. Fügen Sie die Transaktion mit „transaction.addToBackStack(null)“ zum Backstack hinzu. falls gewünscht.
  6. Übernehmen Sie die Transaktion mit transaktion.commit().

Beispielcode

Fragment newFragment = new ExampleFragment();
FragmentTransaction transaction = getSupportFragmentManager().beginTransaction();
transaction.replace(R.id.fragment_container, newFragment);
transaction.addToBackStack(null);
transaction.commit();
Nach dem Login kopieren

Hinweis:

  • Fragmente die über das XML-Layout hinzugefügt werden, können nicht ersetzt werden.
  • Der R.id.fragment_container kann Es muss sich um ein geeignetes Layout oder einen geeigneten Container in der Aktivität handeln.

Das obige ist der detaillierte Inhalt vonWarum ersetzen sich meine Fragmente in meiner Android-Aktivitätsgruppe nicht gegenseitig?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage