Join FlipAndroid.COM Telegram Group: https://t.me/joinchat/F_aqThGkhwcLzmI49vKAiw


¿Es esto un error en la biblioteca de diseño de soporte para Android?

Acabo de empezar a usar la nueva biblioteca Deisgn de Google: 'com.android.support:design:22.2.0'

Yo uso el FloatingActionButton y tengo un pequeño problema entre Android por debajo de 5,0 y más de 5,0. Ver la captura de pantalla:

Android 4.4:

Android 4.4

Android 5.0: Android 5.0

Como puede ver, en Android 4.4, hay un margen alrededor de la FAB. Creo que esto es para mostrar la sombra. ¡Pero ESTA EXCESIVO! ¿Así que es un error (o un olvido de Google) o simplemente el comportamiento normal?

El xml de la vista de alojamiento que fabs:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" tools:context="fr.freemo.freemo.activities.ListFreemoCityActivity"> <include android:id="@+id/toolbar" layout="@layout/view_toolbar" /> <FrameLayout android:id="@+id/container" android:layout_width="match_parent" android:layout_height="match_parent" android:layout_below="@+id/toolbar"> </FrameLayout> <ProgressBar android:id="@+id/progressBar" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_centerHorizontal="true" android:layout_centerVertical="true" /> <android.support.design.widget.FloatingActionButton android:id="@+id/fab_add" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignParentBottom="true" android:layout_alignParentEnd="true" android:layout_alignParentRight="true" android:layout_marginBottom="@dimen/margin_fab" android:layout_marginRight="@dimen/margin_fab" android:elevation="@dimen/fab_elevation_lollipop" android:src="@drawable/ic_action_new" app:backgroundTint="@color/color_app" app:fab_type="normal" /> <android.support.design.widget.FloatingActionButton android:id="@+id/fab_display" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_above="@+id/fab_add" android:layout_alignParentEnd="true" android:layout_alignParentRight="true" android:layout_marginBottom="@dimen/margin_fab" android:layout_marginRight="@dimen/margin_fab" android:elevation="@dimen/fab_elevation_lollipop" android:src="@drawable/ic_map_white" android:tint="@color/color_app" app:backgroundTint="@color/white" app:fab_type="normal" /> <android.support.design.widget.FloatingActionButton android:id="@+id/fab_display_list" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_above="@+id/fab_display" android:layout_alignParentEnd="true" android:layout_alignParentRight="true" android:layout_marginBottom="@dimen/margin_fab" android:layout_marginRight="@dimen/margin_fab" android:elevation="@dimen/fab_elevation_lollipop" android:src="@drawable/ic_action_list" android:tint="@color/color_app" android:visibility="invisible" app:backgroundTint="@color/white" app:fab_type="normal" /> <android.support.design.widget.FloatingActionButton android:id="@+id/fab_display_grid" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_above="@+id/fab_display_list" android:layout_alignParentRight="true" android:layout_marginBottom="@dimen/margin_fab" android:layout_marginRight="@dimen/margin_fab" android:elevation="@dimen/fab_elevation_lollipop" android:src="@drawable/ic_view_module_white" android:tint="@color/color_app" android:visibility="invisible" app:backgroundTint="@color/white" app:fab_type="normal" /> </RelativeLayout> 

  • FloatingActionButton icono de animación (Android FAB dibujo animación dibujable)
  • Establecer el color del icono FAB
  • Hacer que FAB responda a Soft Keyboard mostrar / ocultar cambios
  • Botón de acción flotante de Android Semi Transparente Color de fondo
  • Dos botones de acción flotante al lado del otro
  • InflateException con FloatingActionButton de la biblioteca de diseño oficial
  • Botón de acción flotante y fondo blanco
  • Android Cómo implementar la Hoja inferior de Documentos de diseño de materiales
  • 3 Solutions collect form web for “¿Es esto un error en la biblioteca de diseño de soporte para Android?”

    Fue un problema (compruebe un informe de error creado por mí: https://code.google.com/p/android/issues/detail?id=175330 ) y debería arreglarse en la futura versión de la biblioteca de diseño de soporte.

    Es un error para la API 21. Puede hacer que la flecha sea visible al eliminar algún margen. Aquí está la manera que usted puede solucionarla y después de probar en diversos dispositivos él parece trabajar:

    https://stackoverflow.com/a/31337162/3173384

    Editado

    Bug ya ha sido arreglado. Simplemente actualice todas las bibliotecas de soporte en v 22.2.1

     compile 'com.android.support:design:22.2.1' compile 'com.android.support:appcompat-v7:22.2.1' compile 'com.android.support:cardview-v7:22.2.1' compile 'com.android.support:recyclerview-v7:22.2.1' 

    Esto se ha especificado para no ser un error real. En su lugar, este es el comportamiento esperado.

    Citando una respuesta de google dev:

    Esto no es un error y está funcionando como se pretende, en el sentido de que es algo que es completamente inevitable. Dentro de un CoordinatorLayout tenemos un cierto control y podemos detectar ciertas situaciones (bordes) donde puede compensar el FAB. Esto es un hack sin embargo.

    Si no le gusta, ajuste la elevación a 0dp y termine con ella.

    Como alguien otro declarado aquí, debemos definir

     xmlns:app="http://schemas.android.com/apk/res-auto" app:borderWidth="0dp" app:elevation="0dp" 

    O, mejor aún, definir su elevación en dimens.xml basado en la versión de la API con la que está trabajando. El caso más común sería:

     <!-- dimens.xml(v21) --> <dimen name="custom_fab_elevation">@dimen/fab_elevation</dimen> <!-- dimens.xml(lower) --> <dimen name="custom_fab_elevation">0dp</dimen> 
    FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.