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
.
- ¿Cómo emitir un mensaje de confirmación (sí / no) de una tarea de Android?
- Org.w3c.dom.Document a String sin javax.xml.transform
- ¿Cómo actualizar un GridView?
- Xml getText devolver null - Android
- Obtener la imagen seleccionada de la galería en la vista de la imagen
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í:
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í:
Así que aquí está mi pregunta: ¿Por qué mi anclaje está atornillando el posicionamiento de mi FloatingActionButton
? ¿Qué estoy haciendo mal?
Bulo
- Con SAX Parser, obtiene el valor de un atributo
- Z-index en android?
- keyBackground para teclas especiales - teclado android
- ¿Cómo puedo ajustar RelativeLayout a la pantalla?
- Crear bordes en una vista de androide en xml dibujable, en 3 lados?
- Imagen de Android rotación a través de archivo xml
- Android y la configuración de alfa para (imagen) ver alfa
- Retrofit y SimpleXML para el elemento raíz desconocido?
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" />