每次单击时,是否可以更改浮动操作按钮的颜色?

时间:2019-03-13 14:48:18

标签: android

我有一个FAB,其默认颜色为绿色,是否可以在每次单击时更改颜色?例如,从绿色到红色。

如果可以的话,我想我需要在color / custom_color.xml中添加自定义颜色,但是属性是什么?

3 个答案:

答案 0 :(得分:1)

尝试将app:backgroundTint添加到xml中的FloatingActionButton

<android.support.design.widget.FloatingActionButton
    android:id="@+id/fab"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_gravity="bottom|end"
    android:layout_margin="@dimen/fab_margin"
    app:srcCompat="@android:drawable/ic_dialog_email"
    app:backgroundTint="@color/red"/>

在您的活动中,通过添加点击侦听器来更改按钮颜色:

fab.setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View view) {
        fab.setBackgroundTintList(ColorStateList.valueOf(ContextCompat.getColor(MainActivity.this, R.color.blue)));
    }
});

答案 1 :(得分:0)

您可以使用setBackgroundTintList()更新fab按钮的颜色。

 fab.setBackgroundTintList(ColorStateList.valueOf(Color
                    .parseColor("#33691E")));

然后,您只需要设置OnclickListener并在值数组中选择随机颜色即可。

// Create list of random colors
ArrayList<String> colors = new ArrayList<>();
colors.add("#33691E");
colors.add("#00AE1E");
colors.add("#45F41E");
//Srt onclicklistener
fab.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                // Pick random color
                Random r = new Random();
                int randomIdx = r.nextInt(colors.size());
                // Set background
                fab.setBackgroundTintList(ColorStateList.valueOf(Color
                    .parseColor(colors.get(randomIdx))));
            }
        });

答案 2 :(得分:0)

您可以更改“浮动操作”按钮的颜色:

$member -eq $null

因此Remove-LocalGroupMember是可用来更改FAB背景颜色的属性。

或者如果您想更改图标颜色:

<android.support.design.widget.FloatingActionButton
     xmlns:app="http://schemas.android.com/apk/res-auto"
     android:layout_width="wrap_content"
     android:layout_height="wrap_content"
     android:src="@drawable/ic_add"
     app:backgroundTint="@color/red"
     app:borderWidth="0dp"
     app:elevation="2dp"
     app:fabSize="normal" >