我试图弄清楚如何在按下浮动操作按钮后禁用 2 秒的持续时间时更改浮动操作按钮的背景颜色。我还希望它在 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>
只需用作app:backgroundTint
选择器为:
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:color="...." android:state_enabled="true"/>
<item android:alpha="..." android:color="...."/>
</selector>
然后只需在您的代码中使用:
fab.isEnabled = true
fab.isEnabled = false
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)