遇到的问题
首先kotlin刷新某一个字段,从网上找到的写法如下
class UserInfoBean : BaseObservable() {
@Bindable
var nickName = ""
set(value) {
field = value
notifyPropertyChanged(BR.nickName)
}
}
代码中如下
1、声明
private var mUserBean = UserInfoBean()
2、给databinding赋值
mDataBind.apply {
userBean = mUserBean
}
3、在网络返回后
mDataBind.userBean = 网络返回后的UserInfoBean
4、在某个监听触发后赋值
mUserBean.nickName = "二丫"
理想情况下视图应该会发生变化,但是并没有
当我尝试无数种方法后突然想到了一个问题,原因如下:
因为我在网络返回后赋值了一个新的bean类,所以我改变之前的bean类视图并不会发生改变
我尝试把代码改为
mUserBean = 网络返回后的UserInfoBean
mDataBind.userBean = mUserBean
然后再次尝试赋值后就和预期的一样了