我想有一个edittext,根据它是否可编辑的事实来改变它的背景。
如果edittext是“可编辑的”,它将具有默认的edittext背景,如果不是,它将获得透明的背景(看起来像一个简单的textview)。
我做到了:
android:background="@{viewModel.editable ? android.R.drawable.edit_text : android.R.color.transparent}"
在编译或执行期间,它不会抛出任何异常,但是当变量“editable”被修改时,我的edittext似乎没有背景,也没有任何变化。
My variable editable是一个可绑定的变量,定义如下:
@Bindable
boolean editable;
public boolean isEditable() {
return editable;
}
public void setEditable(boolean editable) {
this.editable = editable;
notifyPropertyChanged(BR.editable);
}
有人知道根据布尔值给出可提取资源吗?
最佳答案
根据Custom Conversions部分中的数据绑定库文档,三元表达式应该使用xml表示法来表示资源常量,而不是java表示法:
android:background="@{viewModel.editable ? @android:drawable/edit_text : @android:color/transparent}"
关于android - 数据绑定(bind)将android资源绑定(bind)到后台,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/37348410/