Layout-Stretching beim Schließen von DialogFragment

8

Ich habe eine Aktivität mit folgendem Layout:

%Vor%

Das add_item_btn hat ein Ereignis beim Klicken, das ein Vollbild erstellt (bearbeitet, um diese Informationen hinzuzufügen) DialogFragment , um die Elementinformationen einzufügen und hinzuzufügen zur lokalen Datenbank. Der folgende Code zeigt, wie ich das DialogFragment :

erstelle %Vor%

Das Problem ist, dass wenn ich dismiss() des erstellten Fragments verwende, das Layout der Aktivität so gestreckt wird, dass die BottomBar Hälfte hinter der Bildschirmleiste steht (siehe Bilder).

Ich habe versucht, die FragmentTransaction (von android.R.id.content zu R.id.main_content , wenn main_content die ID der Wurzel RelativeLayout war) ohne Erfolg zu ändern. Ich habe auch versucht, 2 verschiedene Implementierungen der unteren Navigationsleiste Material Design zu verwenden, aber beide hatten das gleiche Verhalten.

    
Minoru 21.08.2017, 16:05
quelle

2 Antworten

1

Die Antwort gefunden! Ich weiß eigentlich nicht warum, da ich fast keine Erfahrung mit CoordinatorLayout habe, aber das root-Layout von FragmentDialog auf LinearLayout zu setzen löste das Problem.

    
Minoru 25.08.2017, 12:39
quelle
1

Erstens: Sie ändern Ihre Aktivität auf Vollbild und rufen auf, um das Fragment hinzuzufügen. Nachdem Sie den Dialog geschlossen haben, müssen Sie die Aktivität wiederherstellen, so wie Sie sie als Vollbild eingestellt haben, diesmal jedoch als normalen Bildschirm. Der Raum, den Sie dort sehen, ist der Platz, der von der Systemleiste des Android verwendet wird.

Zweitens: Verwenden Sie kein relatives Layout. Verwenden Sie ein lineares Layout, um Ihre Aktivität zu strukturieren. Lernen Sie, Gewichte zu verwenden, und verwenden Sie es, wenn Sie es auch brauchen.

Drittens: Warum verwenden Sie ein Koordinator-Layout in Ihrem Dialog-Fragment? Das musst du nicht.

Viertens: Android hat eine eigene untere Leiste Ссылка Verwenden Sie sie. Sie haben sogar ein funktionierendes Beispiel und eine Vorlage, die Sie in Android Studio sehen können.

Es ist wirklich schwer zu wissen, was mit Ihrer App an den von Ihnen bereitgestellten Informationen nicht stimmt

    
Pedro Varela 30.08.2017 16:44
quelle