FloatingActionButton, layout_anchor y layout_gravity

Un poco de un newb aquí. Estoy a unos dos meses en el desarrollo de Android, pero tengo años de experiencia en desarrollo en otros entornos.

Bueno. Tengo un FloatingActionButton que no apareció donde yo lo esperaba o quería. Está dentro de un CoordinatorLayout , junto con un AppBarLayout / Toolbar , y después de un ListView .

Aquí está el diseño:

 <?xml version="1.0" encoding="utf-8"?> <android.support.design.widget.CoordinatorLayout 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:id="@+id/fragment_coordinator" android:layout_width="match_parent" android:layout_height="match_parent" android:fitsSystemWindows="true" tools:context=".ViewVehicleList"> <android.support.design.widget.AppBarLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:fitsSystemWindows="true" android:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar"> <android.support.v7.widget.Toolbar android:id="@+id/toolbar" android:layout_width="match_parent" android:layout_height="?attr/actionBarSize" android:background="?attr/colorPrimary" android:title="Vehicle List" app:layout_scrollFlags="scroll|enterAlways|snap" app:popupTheme="@style/ThemeOverlay.AppCompat.Light"/> </android.support.design.widget.AppBarLayout> <ListView android:id="@+id/Vehicle_ListView" android:layout_width="match_parent" android:layout_height="match_parent" android:paddingBottom="@dimen/activity_vertical_margin" android:paddingLeft="@dimen/activity_horizontal_margin" android:paddingRight="@dimen/activity_horizontal_margin" android:paddingTop="@dimen/activity_vertical_margin" android:background="#FFFFFF" app:layout_behavior="@string/appbar_scrolling_view_behavior"> </ListView> <android.support.design.widget.FloatingActionButton android:id="@+id/fab_AddVehicle" style="@style/FloatingAddButton" android:src="@drawable/ic_green_add" android:layout_gravity="bottom|end" app:layout_anchor="@id/Vehicle_ListView" android:onClick="addVehicle"/> </android.support.design.widget.CoordinatorLayout> 

Con este diseño, la pantalla se ve así: FAB en posición incorrecta

Mi layout_gravity dice "bottom|end" . Lo cambié a "bottom|right" , pero obtuve el mismo resultado. He leído muchos tutoriales, e investigado Stack Overflow, y no han tenido suerte.

Me las arreglé para solucionarlo eliminando el ancla listado en la app:layout_anchor="@id/Vehicle_ListView" elemento FAB app:layout_anchor="@id/Vehicle_ListView" , que parece estar en contra de lo que he leído: para usar un FAB y posicionarlo correctamente debes usar layout_anchor Y layout_gravity . Sin la etiqueta de anclaje, se ve así:

FAB en la posición correcta

Así que aquí está mi pregunta: ¿Por qué mi anclaje está atornillando el posicionamiento de mi FloatingActionButton ? ¿Qué estoy haciendo mal?

Bulo

One Solution collect form web for “FloatingActionButton, layout_anchor y layout_gravity”

Sólo tienes que añadir layout_anchorGravity .

 <android.support.design.widget.FloatingActionButton android:id="@+id/fab_AddVehicle" style="@style/FloatingAddButton" android:src="@drawable/ic_green_add" android:onClick="addVehicle" app:layout_anchor="@id/Vehicle_ListView" app:layout_anchorGravity="bottom|end" /> 
  • Cómo extraer archivos apk de la PC?
  • Mostrar contenido en la barra de herramientas
  • Android Diseño de materiales Navegación Vista -> Elemento
  • Android RatingBar mostrar recubrimiento negro en algunos dispositivos
  • Android, envío de XML a través de HTTP POST (SOAP)
  • Deshabilite la capacidad de edición y el enfoque de EditText (como TextView)
  • ImageView src con el selector extraíble ignora el estado habilitado
  • La vista de desplazamiento de Android es demasiado larga
  • Botón de anillo redondo en Android
  • Cómo obtener la gravedad 'inferior' trabajando en un dibujable en xml
  • Android nueve patch no se reconoce en el dispositivo
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.