22

jestem wyświetlając FloatingActionButton wraz z Recyclerview w CoordinatorLayout, gdy FAB kliknięciu wiersz zostanie dodana w Recyclerview. Teraz problem polega na tym, że FAB ma margines, kiedy testowałem w API 15, ale kiedy testuję w API 22 (Lollipop 5.1.1-Nexus 4) nie dostaję żadnego marginesu i FAB jest wciśnięty do krawędzi ekranu.FloatingActionButton domyślny margines nie pracuje w lizak

Moją obawą jest fakt, że FAB ma domyślną konfigurację marginesów w API 15 (nie testowałem innych urządzeń), ale nie w API 22, czy też czegoś mi brakuje.

Mój kod układ:

<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 w oparciu o link Widzę problem z biblioteką. – Psypher

Odpowiedz

14

skończyło się za pomocą wartości marginesów API specyficznych. Mój przycisk akcja jest tak:

<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 jest określona w obie wartości/dimens.xml:

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

A w wartościach V21/dimens.xml:

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

I załóżmy, że masz ten sam problem co opisany w this question. Różny margines wynika z faktu, że cień jest obliczany lub nie w zależności od wersji interfejsu API.

16

Wystarczy użyć:

app:useCompatPadding="true" 

Należy dodać wymaganą przestrzeń.

+4

Tak, powinna być zaakceptowana odpowiedź –

+0

zadziałało dla mnie dobrze. wtedy –