Ersetzen Sie ein Fragment programmgesteuert

Ich habe drei Fragmente, wie in der folgenden Abbildung gezeigt. Ich habe all diese drei Fragmente in LinearLayout mithilfe einer XML-Datei hinzugefügt und beim Starten meiner Startaktivität das XML-Layout mithilfe von setContentView geladen.

Ich habe einige Kontrollen auf fragment2. Wenn Sie auf eine der Optionen klicken, wird das Fragment4 mithilfe der FragmentTransaction- und Commit-Methode programmgesteuert geladen. Diese Fragmente werden dem Bildschirm hinzugefügt, aber das Problem ist, dass das programmatisch hinzugefügte Fragment4 den gesamten Bildschirmbereich einnimmt. Woran kann das liegen?

Hinweis: Wenn Sie einen Gegenstand anklicken, klicken Sie auf f2. Ich möchte nur f2 durch neues Fragment f4 ersetzen. Denken Sie daran, ich habe f1, f2, f3 durch XML-Layout-Datei hinzugefügt und programmgesteuert neues Fragment f4 hinzugefügt.

Antworten auf die Frage(2)

Ihre Antwort auf die Frage