2017-07-21 3 views
1

J'essaie d'utiliser un flottant comme indicateur pour la sélection des vues de la carte.Bouton d'action flottant se comporte de manière aléatoire

Je veux que le FAB soit positionné en haut à droite de la carte avec un peu de chevauchement. J'ai essayé d'obtenir le même aspect avec un drawable, mais comme l'application est ciblée pour l'API 16+, je ne peux pas utiliser l'élévation pour la dessiner au-dessus de la carte.

L'utilisation de ce xml: -

<?xml version="1.0" encoding="utf-8"?> 
<android.support.design.widget.CoordinatorLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:card_view="http://schemas.android.com/apk/res-auto" 
    android:layout_width="wrap_content" 
    android:layout_height="match_parent" 
    xmlns:app="http://schemas.android.com/apk/res-auto" 
    android:orientation="vertical"> 


    <android.support.v7.widget.CardView 
     android:id="@+id/suppTemplateCardViewList" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_gravity="center" 
     android:layout_margin="5dp" 
     card_view:cardCornerRadius="2dp" 
     card_view:contentPadding="10dp"> 

     <LinearLayout 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:gravity="center" 
      android:orientation="vertical"> 

     <ImageButton 
      android:id="@+id/suppFunction" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:background="@null" /> 

     <TextView 
      android:id="@+id/suppFunctionName" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" /> 

     </LinearLayout> 

    </android.support.v7.widget.CardView> 

    <android.support.design.widget.FloatingActionButton 
     android:id="@+id/selectorIndicator" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     app:fabSize="mini" 
     app:layout_anchor="@id/suppTemplateCardViewList" 
     app:backgroundTint="@color/blueish" 
     android:src="@drawable/ic_done" 
     app:layout_anchorGravity="top|end"/> 

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

Je suis arrivé ce comportement:

J'ai aussi essayé d'utiliser la

app:layout_anchorGravity 
tag

, mais en vain. Merci.

Répondre

2

En fait, j'ai découvert moi-même à la fin. Apparemment, l'ordre dans le xml est important, donc le fait de placer le FAB au-dessus de la vue de carte l'a fait fonctionner.

0

"top|end" est le cœur du problème. Changez-le en "top|right|end"

+0

a le même comportement :( – Sami

+0

Avez-vous essayé app: élévation android: élévation? .. app est pour l'application compat –

+0

Eh bien, puisque l'application doit fonctionner avec API 16+, je ne peux pas utiliser l'élévation. – Sami