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
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 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>
<dimen name="design_fab_size_normal">90dp</dimen>
<dimen name="design_fab_size_mini">30dp</dimen>
Set this in dimen file.