Я хочу изменить цвет сканирования FAB NFC, когда NFC не включен. Мне удалось успешно изменить цвет при запуске приложения, но если пользователь удаляет FAB и включает NFC, цвет не изменяется на основной цвет. Журналы говорят, что это так, но изменения не происходит.
Мой 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" />
Котлин:
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 есть меньший круг, который выглядит как индикатор касания. Связано ли это с использованием списка состояний цвета?