studio programacion móviles libro icono desarrollo curso boton bar aplicaciones agregar android floating-action-button

móviles - manual de programacion android pdf



Botón de acción flotante de alineación inferior (6)

El diseño debe ser Relative Lay out . Prueba el siguiente código:

<RelativeLayout 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"> <LinearLayout android:id="@+id/ly_list_form" android:layout_width="fill_parent" android:layout_height="fill_parent" android:orientation="vertical"> <ListView android:id="@+id/list_forms" android:layout_width="fill_parent" android:layout_height="wrap_content" android:dividerHeight="1dp" /> </LinearLayout> <LinearLayout android:id="@+id/ly_bar_bottom" android:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_alignParentBottom="true" android:gravity="right" android:orientation="horizontal"> <android.support.design.widget.FloatingActionButton android:id="@+id/button_addc" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="bottom|end" android:layout_margin="28dp" android:src="@drawable/ic_add" app:borderWidth="0dp" app:elevation="6dp" app:pressedTranslationZ="12dp" /> </LinearLayout>

Quiero alinearme a la parte inferior derecha de mi FAB.

  1. Intenté con android:gravity="bottom|right"
  2. Cuando intento android:layout_alignParentBottom="true " FAB desaparece
  3. Cuando intento android:layout_alignBottom="@id/lista_tiendas" FAB desaparece

No parece complicado, pero simplemente no puedo lograrlo

¿Algunas ideas?

<?xml version="1.0" encoding="utf-8"?> <RelativeLayout 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"> <ListView android:id="@+id/lista_tiendas" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_margin="5dp" android:divider="@android:color/transparent" android:dividerHeight="4.0sp"/> <android.support.design.widget.FloatingActionButton android:id="@+id/fab" android:layout_width="wrap_content" android:layout_height="wrap_content" android:src="@drawable/ic_add_white_48dp" app:backgroundTint="@color/spg_rosa" app:borderWidth="0dp" app:elevation="8dp" app:fabSize="normal" android:layout_alignParentRight="true" android:layout_alignParentBottom="@id/lista_tiendas" /> </RelativeLayout>


Para RelativeLayout :

<android.support.design.widget.FloatingActionButton android:id="@+id/fab" android:layout_alignParentBottom="true" android:layout_alignParentRight="true" ... />

Para CoordinatorLayout , debes usar android:layout_gravity="end|bottom"

Para ConstraintLayout :

<android.support.design.widget.FloatingActionButton android:id="@+id/fab" app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintEnd_toEndOf="parent" ... />

Vea esta respuesta para más información.


Parece que FloatingActionButton no está posicionado correctamente dentro de RelativeLayout.

¡Cambié RelativeLayout a FrameLayout y resolví el problema! ¡Espero eso ayude!

<ListView android:id="@+id/mylist" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_margin="5dp" android:divider="@android:color/transparent" android:dividerHeight="1.0sp" /> <android.support.design.widget.FloatingActionButton android:id="@+id/fab" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="right|bottom" android:src="@drawable/ic_add_white_48dp" app:backgroundTint="@color/spg_rosa" app:borderWidth="0dp" app:elevation="8dp" app:fabSize="normal" /> </FrameLayout>


Pude hacer que el código funcionara al hacer esto:

<android.support.design.widget.FloatingActionButton android:id="@+id/fab" android:layout_width="wrap_content" android:layout_height="wrap_content" app:backgroundTint="#ff0000" app:borderWidth="0dp" app:elevation="8dp" app:fabSize="normal" android:layout_alignLeft="@+id/text" android:layout_above="@+id/text"/>

Sin embargo, no funcionaba below TextView lugar de arriba, creo que podría ser un error.


Tratar

android: layout_gravity = "bottom | right"


Trate de usar android.support.design.widget.CoordinatorLayout and android:layout_gravity="bottom|right" funciona para mí.