Ich habe die folgende Test-Bottom-Sheet-Implementierung.
Wenn ich peekHeight auf einen Wert unter 500 setze, funktioniert es. Nach einem gewissen Wert ändert sich die Höhe der Blickhöhe nicht, wenn das untere Blatt erweitert wird. Es bleibt nur dort, um nur manuell zu ziehen. Wie stellen wir die peekHeight programmgesteuert ein, um sicherzustellen, dass das untere Blatt automatisch auf die Peakhöhe erweitert wird.
bottom_sheet_dialog_main
%Vor%Java-Code
%Vor% Bei einer tieferen UI-Überprüfung stellen wir fest, dass es ein weiteres CoordinatorLayout
gibt, das unser Coordinator-Layout umschließt. Das Elternteil CoordinatorLayout
hat ein FrameLayout
mit einem BottomSheetBehavior
mit der ID design_bottom_sheet
. Die in unserem obigen Code eingestellte Peek-Höhe wurde aufgrund der match_parent
Höhe von FrameLayout
mit der ID design_bottom_sheet
Durch Festlegen der Peek-Höhe von FrameLayout
mit der ID design_bottom_sheet wurde dieses Problem behoben
Ich habe eine andere Lösung gefunden. Vielleicht für zukünftige Leser kann es nützlich sein.
%Vor% Wie schon @Anthonyeef erwähnt, zielt ViewTreeObserver
darauf ab, die exakte Messhöhe zu erhalten, nachdem die Ansicht wirklich gemessen wurde und die GlobalOnLayoutListener
für eine bessere Leistung entfernt wurde.
Bitte testen Sie diese Lösung jedoch vor der Verwendung in der Produktion auf verschiedenen Geräten und Bildschirmen, denn wenn Ihr Inhalt im unteren Blatt höher ist als Ihr Bildschirm, kann dies zu merkwürdigem Wischverhalten führen.
Tags und Links java android android-support-library bottom-sheet android-support-design