Android FAB setBackgroundTintList 与 ColorStateList 不起作用

2024-04-11

我想在未启用 NFC 时更改 NFC 扫描 FAB 的颜色。我已成功在应用程序启动时更改颜色,但如果用户点击 FAB 并启用 NFC,颜色不会更改为原色。日志显示确实如此,但更改并未发生。

My minSdkVersion = 15

XML:

<android.support.design.widget.FloatingActionButton
     android:id="@+id/fab_scan_nfc"
     android:layout_width="wrap_content"
     android:layout_height="wrap_content"
     android:layout_marginLeft="10dp"
     app:backgroundTint="@color/colorPrimary"
     app:borderWidth="0dp"
     app:elevation="6dp"
     app:fabSize="mini"
     app:fab_colorNormal="@color/colorPrimary"
     app:fab_colorPressed="@color/colorPrimaryDark"
     app:fab_colorRipple="@color/colorAccent"
     app:srcCompat="@drawable/ic_nfc_n" />

Kotlin:

if (!isNFCEnabled) {
    Log.d(TAG, "Change NFC fab colour to disabled.")
    fab_scan_nfc.backgroundTintList = ColorStateList.valueOf(R.color.colorDisabled)
} else {
    Log.d(TAG, "Change NFC fab colour to primary.")
    fab_scan_nfc.backgroundTintList = ColorStateList.valueOf(R.color.colorPrimary)
}

这与Java相同:

if (!isNFCEnabled) {
    Log.d(TAG, "Change NFC fab colour to disabled.")
    fab_scan_nfc.setBackgroundTintList = ColorStateList.valueOf(R.color.colorDisabled);
} else {
    Log.d(TAG, "Change NFC fab colour to primary.")
    fab_scan_nfc.setBackgroundTintList = ColorStateList.valueOf(R.color.colorPrimary);
}

顺便说一句 - 当代码确实应用禁用的颜色背景色调时,FAB 上有一个较小的圆圈,看起来像触摸指示器。这与使用颜色状态有关系吗list ?


None

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Android FAB setBackgroundTintList 与 ColorStateList 不起作用 的相关文章

随机推荐