Ich benutze Bottom Sheet von Android-Support-Bibliothek wie folgt:
XML:
%Vor%Ich füge untergeordnete Ansichten zu LinearLayout hinzu:
%Vor%Nachdem ich die untergeordneten Ansichten hinzugefügt habe, initialisiere ich BottomSheetBehavior und erweitere es:
%Vor%Das funktioniert nicht. Nichts zeigt. Selbst wenn ich die LinearLayout-Höhe in XML voreinstelle, ist alles nur weiß.
Wenn ich alle untergeordneten Ansichten in LinearLayout in XML hinzufüge, funktioniert alles einwandfrei. Es funktioniert einfach nicht, wenn ich versuche, Ansichten dynamisch dynamisch hinzuzufügen.
Hat jemand ähnliche Probleme?
Probleme mit dynamischem Inhalt auf BottomSheetBehavior im Zusammenhang mit der Implementierung der erweiterten Größenberechnung. BottomSheetBehavior berechnet die erweiterte Größe in der onLayoutChild-Methode. Wenn Sie jedoch den Inhalt des Blattlayouts ändern, wird der Prozess asynchron gestartet. Selbst wenn Sie RequestLayout oder etwas Ähnliches aufrufen. Die Konsequenz der Aufrufe ist also:
Es ist sicherlich der Bug der BottomSheetBehaviour-Implementierung.
In meinem Projekt habe ich eine solche Problemumgehung gefunden:
%Vor%Wenn Sie also BottomSheet mit neuem Inhalt anzeigen möchten, rufen Sie ShowPanel auf. Wenn Sie BottomSheet vollständig ausblenden müssen, rufen Sie hidePanel auf (wenn Sie es in Ihrem Projekt verstecken müssen. Wenn Sie es nicht können, können Sie setVisibility aus Methoden entfernen).
Die Idee einer Problemumgehung besteht darin, den Inhalt von BottomSheet niemals zu ändern, wenn BottomSheetBehavior nicht im erweiterten Zustand ist. Wenn der Status nicht erweitert wird, ändern Sie ihn einfach in expanded, warten Sie, bis die Animation beendet ist, und ändern Sie dann den Inhalt.
Versuchen Sie, runnable in die Nachrichtenwarteschlange der Ansicht zu stellen:
%Vor%Oder mit retroLambda:
%Vor%Tags und Links android android-layout xml bottom-sheet