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>