我正在尝试弄清楚如何在浮动操作按钮被按下后禁用2秒的持续时间内更改其背景颜色。当2秒结束时,我还希望它返回到原来的颜色。
这是按下时出现两秒延迟的代码。此代码位于MainActivity中的一个片段中。
appBar.setExpanded(true, true);
fab.setVisibility(View.VISIBLE);
fab.setImageResource(R.drawable.ic_phone_white_18dp);
fab.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
fab.setClickable(false);
Timer buttonTimer = new Timer();
buttonTimer.schedule(new TimerTask() {
@Override
public void run() {
runOnUiThread(new Runnable() {
@Override
public void run() {
fab.setClickable(true);
}
});
}
}, 2000);
我已经尝试使用文档中的StateListDrawable
方法进行调整,但没有找到有效的方法。
这是 FAB 的颜色主题的 XML。
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:color="@color/themeColorPressed" android:state_pressed="true"/>
<item android:color="@color/themeColorPressed" android:state_checked="true"/>
<item android:color="@color/themeColorPressed" android:state_selected="true"/>
<item android:color="@color/themeColorPressed" android:state_enabled="false"/>
<item android:color="@color/themeColor" android:state_enabled="true"/>
</selector>