Android: Как изменить размер приложения: fabSize= "нормальный" для кнопки плавающего действия

при использовании 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

5 ответов


есть два разных размеров FAB в наличии: normal или mini

  1. Normal (56dp) - этот размер должен использоваться в большинстве ситуаций.

  2. 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 fab размеров, в этом случае, я думаю, вам нужно создать пользовательский вид, расширяющий fab.


Я знаю, что это не рекомендуется, но для тех, кому абсолютно необходимо изменить размеры по умолчанию, я смог сделать это, обернув 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>

просто пользовательское приложение: fabCustomSize в xml

app:fabCustomSize="100dp"

Бинго.


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