如何使用xml设置浮动操作按钮的按钮状态?

时间:2020-05-04 17:20:11

标签: android

我在下面的xml中有一个浮动操作按钮,可以正常运行

fragment_one.xml

<com.google.android.material.floatingactionbutton.FloatingActionButton
                    android:id="@+id/btnFloatMain"
                    android:layout_width="80dp"
                    android:layout_height="80dp"
                    android:clickable="true"
                    android:layout_gravity="bottom|right"
                    android:layout_marginBottom="15dp"
                    android:layout_marginRight="15dp"
                    app:maxImageSize="80dp"
                    app:fabCustomSize="80dp"
                    app:srcCompat="@drawable/button_float_main"
                    />

但是我想在按下时设置浮动操作按钮的按钮状态,所以我在下面创建了xml

button_states_float_main.xml

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:android="http://schemas.android.com/apk/res/android">
    <item
        android:state_pressed="true"
        app:maxImageSize="80dp"
        app:fabCustomSize="80dp"
        app:srcCompat="@drawable/button_float_main_pressed"/>
    <item
        app:maxImageSize="80dp"
        app:fabCustomSize="80dp"
        app:srcCompat="@drawable/button_float_main"/>
</selector>

并将我的按钮xml修改为

fragment_one.xml

<com.google.android.material.floatingactionbutton.FloatingActionButton
                    android:id="@+id/btnFloatMain"
                    android:layout_width="80dp"
                    android:layout_height="80dp"
                    android:clickable="true"
                    android:layout_gravity="bottom|right"
                    android:layout_marginBottom="15dp"
                    android:layout_marginRight="15dp"
                    app:srcCompat="@drawable/button_states_float_main"
                    />

但是自从我的应用程序崩溃以来,我认为我的设置方法不正确。

1 个答案:

答案 0 :(得分:0)

使用

android:drawable="@drawable/button_float_main_pressed"

代替

app:srcCompat="@drawable/button_float_main_pressed"

选择器