studio library icon flotante floatingactionbutton float example coordinatorlayout boton android floating-action-button androiddesignsupport android-coordinatorlayout coordinator-layout

android - library - El margen predeterminado de FloatingActionButton no funciona en el lollipop



float button android icon (3)

Solo usa:

app:useCompatPadding="true"

Esto debería agregar espacio requerido.

Estoy mostrando FloatingActionButton junto con un Recyclerview en un CoordinatorLayout , cuando se hace clic en el FAB, se agregaría una fila en Recyclerview . Ahora el problema es que la FAB tiene un margen cuando probé en la API 15, pero cuando probé en la API 22 (piruleta 5.1.1-Nexus 4) no obtengo ningún margen y la FAB se presiona hasta el borde de la pantalla.

Mi preocupación es que FAB tiene una configuración de margen predeterminada en la API 15 (no probé otros dispositivos) pero no en la API 22 o me falta algo.

Mi código de diseño:

<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>


Supongo que tiene el mismo problema que se describe en esta pregunta . El margen diferente se debe a que la sombra se calcula o no según la versión de la API.


Terminé usando valores de margen específicos de la API. Mi botón de acción es así:

<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 se define en ambos valores / dimens.xml:

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

Y en valores-v21 / dimens.xml:

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