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


Cómo crear un tamaño personalizado de FloatingActionButton

FloatingActionButton por defecto tiene dos tamaños (normal y mini). Necesito otro (más grande que lo normal).

app:fabSize parámetro app:fabSize de xml se convirtió private int mSize; Variable en la clase FloatingActionButton . El tamaño real será determinado por esta función:

 final int getSizeDimension() { switch(this.mSize) { case 0: default: return this.getResources().getDimensionPixelSize(dimen.fab_size_normal); case 1: return this.getResources().getDimensionPixelSize(dimen.fab_size_mini); } } 

Debido a que declaró como final no puedo extenderlo. ¿Algunas ideas? ¿Puedo redefinir el recurso dimen.fab_size_mini en mi aplicación?

2 Solutions collect form web for “Cómo crear un tamaño personalizado de FloatingActionButton”

Porque no uso FAB de mini tamaño, redefiní este tamaño.

Dimens.xml:

 <resources> <dimen name="design_fab_size_mini">100dp</dimen> </resources> 

Layout.xml (el primer FAB será mayor que el segundo):

  <android.support.design.widget.FloatingActionButton android:id="@+id/addPhoto" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="end|bottom" android:layout_alignParentBottom="true" android:layout_alignParentRight="true" app:fabSize="mini" android:layout_marginBottom="@dimen/fab_margin_bottom" android:layout_marginRight="@dimen/fab_margin_right" android:src="@drawable/ic_photo_camera_white_24dp" /> <android.support.design.widget.FloatingActionButton android:id="@+id/addPicture" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="end|bottom" android:layout_alignParentBottom="true" android:layout_toLeftOf="@id/addPhoto" android:layout_marginBottom="@dimen/fab_margin_bottom" android:layout_marginRight="0dp" android:src="@drawable/ic_photo_white_24dp" /> 

Puede definir su FloatingActionButton personalizado de esta manera

 public class CustomSizeFloatingActionButton extends FloatingActionButton { public CustomSizeFloatingActionButton(Context context) { super(context); } public CustomSizeFloatingActionButton(Context context, AttributeSet attrs) { super(context, attrs); } public CustomSizeFloatingActionButton(Context context, AttributeSet attrs, int defStyleAttr) { super(context, attrs, defStyleAttr); } @Override protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) { super.onMeasure(widthMeasureSpec, heightMeasureSpec); int width = getMeasuredWidth(); int height = getMeasuredHeight(); setMeasuredDimension((int) (width * 1.5f), (int) (height * 1.5f)); } } 

En vez de 1.5f usted puede definir fijar su multiplicador.
De esta manera, no es necesario redefinir los recursos que pueden afectar a otras partes de la aplicación.

FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.