Android BottomSheetDialogFragment wird nicht vollständig erweitert

7

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%     
Nandish A 31.05.2016, 20:52
quelle

3 Antworten

4

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

eingeschränkt

Durch Festlegen der Peek-Höhe von FrameLayout mit der ID design_bottom_sheet wurde dieses Problem behoben

%Vor%     
Nandish A 13.06.2016, 05:56
quelle
13

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.

    
quelle
7

Verwendung dieses Codes in onCreateView.

%Vor%     
athysirus 09.03.2017 17:44
quelle