library icon android android-layout floating-action-button

android - icon - floating action button menu



Android: cómo cambiar el tamaño de la aplicación: fabSize="normal" para el botón de acción flotante (8)

Cuando se usa el nuevo FloatingActionButton , el tamaño lo determina app:fabSize="normal" . ¿Cómo puedo configurar lo que en dp es el tamaño al que hace referencia "normal" ?

Intenté crear values/attrs.xml :

<?xml version="1.0" encoding="utf-8"?> <resources> <declare-styleable name="app"> <attr name="fabSize"> <enum name="mini" value="50dp" /> <enum name="normal" value="100dp" /> </attr> </declare-styleable> </resources>

Pero me sale el error

"normal" in attribute "fabSize" is not a valid integer


Standard Sizes

Existen tres opciones para los tamaños FAB estándar (según developer.android ) que puede configurar usando la app:fabSize .

  1. normal : el botón de tamaño normal.
  2. mini : el botón de tamaño mini.
  3. auto : tamaño que cambiará según el tamaño de la ventana

.

<android.support.design.widget.FloatingActionButton android:layout_width="wrap_content" android:layout_height="wrap_content" app:srcCompat="@drawable/ic_add_black_24dp" app:tint="#404D54" app:backgroundTint="#ffd500" app:fabSize="normal" />

.

Custom Sizes

Para establecer el tamaño de FAB personalizado, puede configurar la app:fabCustomSize . Tenga en cuenta que android:layout_width y android:layout_height deben ser "wrap_content" .

<android.support.design.widget.FloatingActionButton android:layout_width="wrap_content" android:layout_height="wrap_content" app:srcCompat="@drawable/ic_add_black_24dp" app:tint="#404D54" app:backgroundTint="#ffd500" app:fabCustomSize="36dp" />


Hay dos tamaños diferentes de FAB disponibles: normal o mini

  1. Normal (56dp) : este tamaño se debe usar en la mayoría de las situaciones.

  2. Mini (40dp) : solo debe usarse cuando se necesita una continuidad visual con otros componentes que se muestran en la pantalla.


Para cambiar el tamaño de Fab y para ver la imagen grande de inicio, he hecho los siguientes cambios en la API de Android 28: - thew are as

<android.support.design.widget.FloatingActionButton android:id="@+id/profile_imageview" android:layout_width="@dimen/design_fab_size_mini" android:layout_height="@dimen/design_fab_size_mini" android:layout_marginTop="10dp" android:src="@drawable/pin_check" app:borderWidth="0dp" app:elevation="0dp" app:maxImageSize="90dp" />

donde in dimens.xml

<dimen name="design_fab_size_mini" tools:override="true">90dp</dimen> <dimen name="design_fab_content_size" tools:override="true">58dp</dimen>


Puede anular los tamaños normal y mini agregando lo siguiente a values/dimens.xml :

<!-- Overriding sizes of the FAB --> <dimen name="design_fab_size_normal">90dp</dimen> <dimen name="design_fab_size_mini">30dp</dimen>

Lo complicado sería si necesitas más de 2 tamaños de fabulosos, en ese caso, creo que necesitas crear una vista personalizada que amplíe la fab.


Sé que no se recomienda, pero para aquellos que necesitan cambiar los tamaños predeterminados, pude hacerlo envolviendo el LinearLayout FloatingActionButton en un LinearLayout .

<LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:gravity="center" android:layout_centerInParent="true" android:orientation="horizontal" > <android.support.design.widget.FloatingActionButton android:layout_width="@dimen/custom_fab_size" android:layout_height="@dimen/custom_fab_size" app:fabSize="normal" android:clickable="true" android:src="@drawable/ic_mic_white_24dp" android:scaleType="center"/> </LinearLayout>


Solo aplicación de usuario: fabCustomSize en xml

app:fabCustomSize="100dp"

Bingo.


aplicación: maxImageSize

<android.support.design.widget.FloatingActionButton android:id="@+id/floating_action_button" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="end|bottom" android:layout_marginBottom="60dp" android:src="@drawable/icon_return_back" app:backgroundTint="#00ffffff" app:borderWidth="0dp" app:elevation="0dp" app:maxImageSize="46dp" app:pressedTranslationZ="0dp" app:rippleColor="#00ffffff" />


<dimen name="design_fab_size_normal">90dp</dimen> <dimen name="design_fab_size_mini">30dp</dimen> Set this in dimen file.