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
Il existe deux tailles de FAB
disponible: normal
ou mini
Normal (56dp)
- Cette taille devrait être utilisée dans la plupart des situations.
Mini (40dp)
- Ne doit être utilisé que lorsque la continuité visuelle avec d'autres composants affichés à l'écran est nécessaire.
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.
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>
Juste application utilisateur: fabCustomSize in xml
app:fabCustomSize="100dp"
Bingo.
Standard Sizes
Il existe trois options pour les tailles standard FAB
(selon developer.Android ) que vous pouvez définir à l'aide de app:fabSize
.
.
<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" />
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>
<dimen name="design_fab_size_normal">90dp</dimen>
<dimen name="design_fab_size_mini">30dp</dimen>
Set this in dimen file.