4

J'utilise Android support FloatingActionButton (FAB) et CoordinatorLayout et je veux ancrer FAB à un CardView.Anchor FloatingActionButton

Ceci est mon code:

<android.support.design.widget.CoordinatorLayout 
... /> 

<LinearLayout 
    ...> 
    <android.support.v7.widget.CardView 
     android:id="@+id/container" 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" /> 
    ... 
</LinearLayout> 

<android.support.design.widget.FloatingActionButton 
    android:id="@+id/fab" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_margin="32dp" 
    android:src="@android:drawable/ic_menu_send" 
    app:layout_anchor="@id/container" 
    app:layout_anchorGravity="bottom|end" /> 

</android.support.design.widget.CoordinatorLayout> 

Cela fonctionne mais parfois FAB apparaissent sur le côté supérieur gauche de la page, non ancrée.

Dans ce cas, lorsque j'appuie sur FAB, il revient ancré. CardView n'est pas un enfant direct de CoordinatorLayout mais [Support Library 24.2.1] que j'utilise le permet.

Quel pourrait être le problème?

+0

est une disposition linéaire contenant une autre vue ou non? –

+0

Oui, LinearLayout contient d'autres vues – Stefano

Répondre

0

Avez-vous essayé de l'ancrer dans Linear Layout plutôt que dans CoordinatorLayout?

<android.support.design.widget.CoordinatorLayout 
... /> 

<LinearLayout 
    ...> 
    <android.support.v7.widget.CardView 
     android:id="@+id/container" 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" /> 
    ... 
<android.support.design.widget.FloatingActionButton 
    android:id="@+id/fab" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_margin="32dp" 
    android:src="@android:drawable/ic_menu_send" 
    app:layout_anchor="@id/container" 
    app:layout_anchorGravity="bottom|end" /> 
</LinearLayout> 

    </android.support.design.widget.CoordinatorLayout> 
+0

Oui, j'ai essayé de déplacer FAB dans de nombreux points et dans ce cas il disparaît. – Stefano

+0

essayez de définir la gravité sur "bottom | right | end" –

+0

Rien ne change, même problème – Stefano

2

Essayez de supprimer les éléments suivants:

app:layout_anchor="@id/container" 
app:layout_anchorGravity="bottom|end" 

et ajouter:

android:layout_gravity="bottom|end"