Здравствуйте, я пытаюсь установить красный цвет в app:cardBackgroundColor
на CardView
, для этого у меня есть следующий код:
<android.support.v7.widget.CardView
android:id="@+id/cvPassword"
style="@style/card_view.with_elevation.edit_text"
app:cardBackgroundColor="@{registerViewModel.passwordCvColor}"
android:layout_marginTop="24dp"
app:layout_constraintBottom_toTopOf="@id/checkBox"
app:layout_constraintEnd_toEndOf="@id/guidelineRegisterEnd"
app:layout_constraintStart_toStartOf="@id/guidelineRegisterStart"
app:layout_constraintTop_toBottomOf="@id/cvRepeatEmail">
В ViewModel у меня есть следующий код:
public final MutableLiveData<Integer> passwordCvColor = new MutableLiveData<>();
А для изменения цвета у меня есть следующий код:
binding.setPasswordHandler(new Handler(){
@Override
public void onFocusLost() {
String password = registerViewModel.email.getValue();
if(password == null || password.isEmpty()){
registerViewModel.passwordCvColor.setValue(R.color.red);
}else{
registerViewModel.passwordCvColor.setValue(null);
}
}
});
Это «работа», потому что наблюдатель меняет значение на R.color.red. Цвет меняется в представлении, но новый цвет - синий вместо красного.
Я пытаюсь напрямую установить цвет в макете, и эта работа и цвет красный, но с ViewModel этого не происходит.
Есть идеи?
Спасибо