新しいFloatingActionButton
を使用する場合、サイズはapp:fabSize="normal"
によって決定されます。 dp
で"normal"
で参照されるサイズを設定するにはどうすればよいですか?
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>
しかし、エラーが発生します
"normal" in attribute "fabSize" is not a valid integer
FAB
には2つの異なるサイズがあります:normal
またはmini
Normal (56dp)
—このサイズは、ほとんどの状況で使用する必要があります。
Mini (40dp)
—画面に表示される他のコンポーネントとの視覚的な連続性が必要な場合にのみ使用してください。
以下をvalues/dimens.xml
に追加することにより、通常サイズとミニサイズを上書きできます。
<!-- Overriding sizes of the FAB -->
<dimen name="design_fab_size_normal">90dp</dimen>
<dimen name="design_fab_size_mini">30dp</dimen>
トリッキーなことは、2つ以上のファブサイズが必要な場合です。その場合、ファブを拡張するカスタムビューを作成する必要があると思います。
推奨されていませんが、デフォルトサイズを絶対に変更する必要がある場合は、FloatingActionButton
を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>
Xmlのapp:fabCustomSizeユーザーのみ
app:fabCustomSize="100dp"
ビンゴ。
Standard Sizes
標準のFAB
サイズ( developer.Android に準拠)には3つのオプションがあり、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
カスタムFAB
サイズを設定するには、app:fabCustomSize
を設定できます。 Android:layout_width
とAndroid:layout_height
は"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" />
app: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" />
Fabサイズを変更し、大きな画像initを表示するには、以下で変更を行いましたAndroid api 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" />
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.