У меня есть ImageView
, на котором я меняю альфа в зависимости от наличия строки.
XML
<data>
<import type="android.text.TextUtils"/>
<variable name="model" type="myPackage.Model"/>
</data>
<TextView
android:text="@={model.stringAttribute}"/>
<ImageView
android:alpha='@{model.stringAttribute.eqals("") ? 0.5f : 1.0f }'
android:src="@drawable/thing"/>
И в моем activity
:
binding.setModel(model);
Это работает за исключением того, что альфа на ImageView
обновляется только при перезапуске действия.Я попытался добавить знак равенства после @, но он не скомпилируется.
Model
public class Model extends BaseObservable {
private String stringAttribute;
public void setStringAttribute(String s) {
stringAttribute = s
notifyPropertyChanged(BR.stringAttribute)
}
@Bindable
public String getStringAttribute() {
return stringAttribute;
}
}
И чтобы уточнить, TextView
обновляется, когда модельизмененоЭто просто альфа на ImageView
, который не будет обновляться до тех пор, пока действие не будет перезапущено.