Android: Floating Action Button in falscher Position

9

Ich habe Floating Action Buttons in zwei meiner Fragment Layouts und manchmal bewegen sie sich an die falsche Position, obwohl ich CoordinatorLayout verwende.

So sollte es aussehen

So sieht es manchmal aus, wenn ich das Fragment öffne

Dies ist der Code meines Fragments:

%Vor%

Hat jemand eine Idee, warum die FAB manchmal in die falsche Position bewegt?

    
Cimoe 08.09.2016, 10:49
quelle

7 Antworten

7

Ich stieß auf das gleiche Problem. Das Problem ist mit der Kombination von app: layout_anchor und com.android.support.design:24.2.0 +

Ich konnte dieses Problem beheben, indem ich entweder die app: layout_anchor-Eigenschaft aus der Fab löste oder zu einer älteren Version der Design-Bibliothek zurückkehrte. 24.1.1 hat gut für mich funktioniert. Ich musste auch meine appcompat v7-Bibliothek zu 24.1.1 zurück.

Ich hoffe, das hilft.

    
Vijay 19.10.2016, 15:17
quelle
6

Versuchen Sie, FAB zum ersten Kind von CoordinatorLayout zu machen

    
Andriy Pokynboroda 17.01.2017 15:39
quelle
2

Die Klasse CoordinatorLayout.LayoutParams hat dafür das Feld anchorGravity . Zum Beispiel:

%Vor%     
Sangram Haladkar 08.09.2016 11:26
quelle
1

In meinem Fall war das ein Fehler in der Support-Bibliothek von 24.2.0 und höher. Der einzige Weg zur Lösung des Problems bestand darin, die App mit support lib v24.1.1 zu erstellen.

    
dahec 06.10.2016 09:51
quelle
1
%Vor%     
Mansi Salvi 06.10.2016 10:59
quelle
0

Keiner dieser Vorschläge funktionierte für mich (Downgrade war keine Option; das FAB nach oben zu verschieben, damit es das erste Kind ist, macht es auf Android 14 unsichtbar; das Entfernen von layout_anchor lässt es ständig an eine zufällige Position springen)

Ich habe stattdessen ConstraintLayout verwendet, um den FAB manuell zwischen den beiden Ansichten zu positionieren, in denen ich ihn haben wollte. Da der gesamte Bildschirm von mir keinen Scrollbereich hat, hat das funktioniert.

Um den FAB auf diese Weise zu positionieren, setzen Sie seine obere und untere Einschränkung auf den unteren Teil der oberen Ansicht, die sich überlappen soll, und stellen Sie sicher, dass es sich um das letzte untergeordnete Objekt in ConstraintLayout handelt.

    
Fabian Streitel 11.06.2017 20:24
quelle
0

Setzen Sie den FAB in ein RelativeLayout, es funktionierte für mich, ich benutze die Version 25.3.1 der Support-Bibliothek

    
Hamza 18.07.2017 15:57
quelle

Tags und Links