web-dev-qa-db-fra.com

Android: Comment changer la taille de l'application: fabSize = "normal" pour le bouton d'action flottant

Lorsque vous utilisez la nouvelle FloatingActionButton, la taille est déterminée par app:fabSize="normal". Comment définir quelle taille dans dp est la taille référencée par "normal"?

J'ai essayé de créer 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>

Mais j'ai l'erreur

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

Il existe deux tailles de FAB disponible: normal ou mini

  1. Normal (56dp) - Cette taille devrait être utilisée dans la plupart des situations.

  2. Mini (40dp) - Ne doit être utilisé que lorsque la continuité visuelle avec d'autres composants affichés à l'écran est nécessaire.

33
H.S.H

Vous pouvez remplacer les tailles normale et mini en ajoutant ce qui suit à values/dimens.xml:

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

La difficulté serait que vous ayez besoin de plus de 2 tailles d’usine. Dans ce cas, vous devez créer une vue personnalisée qui étend l’usine.

37
Javier Mendonca

Je sais que ce n'est pas recommandé, mais pour ceux qui ont absolument besoin de changer les tailles par défaut, j'ai pu le faire en encapsulant FloatingActionButton dans 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>
16
Kahtaf Alam

Juste application utilisateur: fabCustomSize in xml 

app:fabCustomSize="100dp"

Bingo.

9

Standard Sizes

Il existe trois options pour les tailles standard FAB (selon developer.Android ) que vous pouvez définir à l'aide de app:fabSize.

  1. normal: le bouton de taille normale.
  2. mini: le bouton de taille mini.
  3. auto: taille qui changera en fonction de la taille de la fenêtre

.

<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

Pour définir la taille personnalisée FAB, vous pouvez définir app:fabCustomSize. Notez que Android:layout_width et Android:layout_height devraient être "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" />
3
aminography

Pour changer la taille de Fab et voir l'image en grand, j'ai apporté les modifications ci-dessous dans l'API 28 Android: 

    <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" />

où dans dimens.xml 

<dimen name="design_fab_size_mini" tools:override="true">90dp</dimen>
<dimen name="design_fab_content_size" tools:override="true">58dp</dimen>
1
Sandeep Sankla
<dimen name="design_fab_size_normal">90dp</dimen>
<dimen name="design_fab_size_mini">30dp</dimen>
Set this in dimen file.
0
Ankit Gupta