databinding使用
2017-09-07 本文已影响26人
34sir
- 对于某些复杂的自定义属性 可通过 @BindingAdapter嵌套一层绑定到子view当中(逻辑有点复杂 具体可见搜索好友的titlebar的绑定)
- 某些自定义view的子view是通过new出来的不是在xml上无法绑定 此种情况建议findviewbyid获取控件,比如titlebar的righttext
- databinding自带的属性:adapter setOnEditorActionListener 能调用的方法直接可以使用 不需要自定义属性
- @BindingAdapter 会有相同参数的时候谁的参数多用谁 这边方法名就随意和它无关 (一般需要加上 requireAll = false)
- 主线程中更新数据 否则ui不会变化
- @={} 双向绑定 目前双向绑定仅支持如text,checked,rating,progress等绑定
- 自定义双向绑定
- 改原有的代码时先把模块的代码抽出分好类 建议从网络请求开始
- DataBindingUtil.setContentView 或者getRoot 报错 但是可以编译运行 某些情况需要重启
- attr中定义好自定义属相 xml中会自动提示 注意指定好类型 一般为view
关于单元测试:
- 单元测试中的方法不能有日志输出 单元测试时可先注销
- jni相关的暂时不能测(某些preference 以及model调用的方法 后面解决)
- vm中的逻辑代码编写要注意 notifyproperty不会起作用