22

Sto visualizzando FloatingActionButton insieme a Recyclerview in un CoordinatorLayout, quando si fa clic su FAB una riga verrà aggiunta in Recyclerview. Ora il problema è che il FAB ha margine quando ho provato in API 15 ma quando provo in API 22 (lollipop 5.1.1-Nexus 4) non ottengo alcun margine e il FAB viene premuto fino al bordo dello schermo.Il margine predefinito FloatingActionButton non funziona in lollipop

La mia preoccupazione è FAB ha impostazione di margine di default in API 15 (non testare altri dispositivi) ma non in API 22 o mi manca qualcosa.

Il mio codice di layout:

<android.support.design.widget.CoordinatorLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:app="http://schemas.android.com/apk/res-auto" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:background="#6fbababa" 
    android:fitsSystemWindows="true"> 

    <android.support.v7.widget.RecyclerView 
     android:id="@+id/my_recycler_view" 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:clipToPadding="false" 
     android:paddingBottom="@dimen/fab_padding_bottom" 
     android:scrollbars="vertical" 
     app:layout_behavior="@string/appbar_scrolling_view_behavior" /> 

    <android.support.design.widget.AppBarLayout 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:background="#ffffff"> 

     <LinearLayout 
      android:layout_width="match_parent" 
      android:layout_height="wrap_content" 
      android:fitsSystemWindows="true" 
      android:orientation="horizontal" 
      app:layout_scrollFlags="scroll|enterAlwaysCollapsed"> 
      --------------------- 
      ---------------------  
     </LinearLayout> 

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

    <android.support.design.widget.FloatingActionButton 
     android:id="@+id/button_floating_action" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:clickable="true" 
     android:src="@drawable/ic_plus" 
     app:borderWidth="0dp" 
     app:layout_anchor="@id/my_recycler_view" 
     app:layout_anchorGravity="bottom|right|end" 
     app:rippleColor="@color/wallet_highlighted_text_holo_light" /> 

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

enter image description here

+1

http://stackoverflow.com/questions/30687888/android-design-library-floating-action-button-padding-margin-issues – goonerDroid

+0

K in base al collegamento Vedo che è un problema con la libreria. – Psypher

risposta

14

ho finito per usare valori dei margini specifici API. Il mio pulsante di azione è simile a questo:

<android.support.design.widget.FloatingActionButton 
    android:contentDescription="@string/menu_compose" 
    android:id="@+id/action" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:clickable="true" 
    android:src="@drawable/ic_create_white" 
    android:layout_gravity="bottom|right|end" 
    android:layout_marginBottom="@dimen/action_button_margin" 
    android:layout_marginRight="@dimen/action_button_margin" 
    android:layout_marginEnd="@dimen/action_button_margin" 
    app:elevation="6dp" 
    app:pressedTranslationZ="12dp" 
    app:fabSize="normal"/> 

@dimen/action_button_margin è definito sia in valori/dimens.xml:

<dimen name="action_button_margin">0dp</dimen> 

E in valori-V21/dimens.xml:

<dimen name="action_button_margin">16dp</dimen> 
0

I presumi di avere lo stesso problema descritto in this question. Il diverso margine è dovuto al fatto che l'ombra viene calcolata o meno in base alla versione dell'API.

16

Basta usare:

app:useCompatPadding="true" 

Questo dovrebbe aggiungere lo spazio richiesto.

+4

sì, dovrebbe essere la risposta accettata –

+0

ha funzionato per me bene. thenks –

Problemi correlati