DataBinding 笔记

android
DataBinding
notes

那些年踩过的坑


  1. public 类型的变量,getter 方法必须有,没有就会报错:Could not find accessor xxx.xxx.FiledName。原理是:DataBinding 需要给变量设置值、获取变量的值

  2. ObservableXX 类型的变量设置值时使用:fieldName.set() 方法;在布局文件中获取值时使用:fieldName,在 Java 文件中获取值时使用 filedName.get()Java 文件中,fieldName 获取的是对象的地址)

  3. 所有在布局文件中申明的变量,在使用前,都需要在 Java 文件中初始化。比如布局文件中使用了方法,就需要在 Java 文件中实例化申明了交互方法的类

  4. 在使用集合时(例如:ObservableArrayList),如果要指明集合的范型,使用 import 引入范型的包

  5. 把正常布局改为 databinding 类型的布局的正确姿势:在正常布局的最外面包裹 layout;把正常布局根节点上命名空间声明移到 layout 节点上,把 xml:tools 的申明 必须 得移动到 layout 上,否则布局预览上没有效果;把 data 节点作为 layout 节点的第一直接子元素

  6. 控件 id 的值不要相同。如果有相同,在 viewpager 使用时,按顺序向后翻页没有问题,但是向前翻页,会报错:java.lang.IllegalArgumentException: Wrong state class, expecting View State but received class android.support.v7.widget.RecyclerView$SavedState instead. This usually happens when two views of different type have the same id in the same hierarchy. This view's id is id/common_rv. Make sure other views do not use the same id.

  7. 使用 BindingAdpter 为首个类型的控件定义一个属性,要想让它在 Studio 的智能提示中出现,需要在 res/values/attrs.xml 文件中,使用 declare-styleable 申明自定义属性。属性的名称就是控件的名称(大小写一致),属性里的每个 attr 节点都代表着自定义的每个属性

  8. 特殊字符使用:& - &amp;< - &lt;> - &gt;

问题


  1. 动态布局(即代码生成的而已)是否可以使用 DataBinding

  2. Presenter 中,如何传入控件或变量(比如要改变可见性的 TextView,要显示、消失的 ProgressDialog)?

  3. 如何给控件使用 DataBinding 设置 marginXXX 属性?

    3.1 使用 @BindingAdapter("android:layout_marginTop") 注解

    3.2 方法的第一个参数:View view,第二个参数:float marginTop

    3.3 注意:第二个参数类型一定得是 float

DataBinding 笔记的更多相关文章

  1. [ExtJS5学习笔记]第十节 Extjs5新增特性之ViewModel和DataBinding

    本文地址:http://blog.csdn.net/sushengmiyan/article/details/38612721 本文作者:sushengmiyan ------------------ ...

  2. 设计模式笔记之三:Android DataBinding库(MVVM设计模式)

    本博客转自郭霖公众号:http://mp.weixin.qq.com/s?__biz=MzA5MzI3NjE2MA==&mid=2650236908&idx=1&sn=9e53 ...

  3. AngularJs学习笔记--directive

    原版地址:http://code.angularjs.org/1.0.2/docs/guide/directive Directive是教HTML玩一些新把戏的途径.在DOM编译期间,directiv ...

  4. AngularJs学习笔记--concepts(概念)

    原版地址:http://code.angularjs.org/1.0.2/docs/guide/concepts 继续.. 一.总括 本文主要是angular组件(components)的概览,并说明 ...

  5. [置顶] Android AOP 实践笔记

    本文同步自wing的地方酒馆 最近博客更新越来越慢了,有两方面原因: 1.没啥好写的. 2.应该沉下心好好沉淀自己,积累一些东西,博客写的太频繁有"刷博客"之嫌,还容易浮躁. 浮躁 ...

  6. AngularJs学习笔记--Understanding the Controller Component

    原版地址:http://docs.angularjs.org/guide/dev_guide.mvc.understanding_model 在angular中,controller是一个javasc ...

  7. 【Android Jetpack高手日志】DataBinding 从入门到精通

    前言 DataBinding 数据绑定库是 Android Jetpack 的一部分,借助该库可以使用声明性格式(而非程序化地)将布局中的界面组件绑定到应用中的数据源.我个人觉得,使用 DataBin ...

  8. git-简单流程(学习笔记)

    这是阅读廖雪峰的官方网站的笔记,用于自己以后回看 1.进入项目文件夹 初始化一个Git仓库,使用git init命令. 添加文件到Git仓库,分两步: 第一步,使用命令git add <file ...

  9. js学习笔记:webpack基础入门(一)

    之前听说过webpack,今天想正式的接触一下,先跟着webpack的官方用户指南走: 在这里有: 如何安装webpack 如何使用webpack 如何使用loader 如何使用webpack的开发者 ...

随机推荐

  1. iOS:自动读取图片插件KSImageNamed-Xcode-master的使用

    gitHub链接:https://github.com/ksuther/KSImageNamed-Xcode   KSImageNamed-Xcode是一个Xcode插件,可以帮助开发者在Xcode中 ...

  2. IOS APP 上传到AppStore

    由于第一次接触要把 app 上传到 AppStore 比较棘手,很多地方不懂,研究了 大半天 终于给上传成功了,现在坐等审核吧,首先把上传到AppStore的流程 整理下 : 第一 :准备证书 (要确 ...

  3. 常见前端UI框架

    祈澈姑娘 程序员一枚 本文作者祈澈姑娘,转载请声明 前端的技术日渐更新,最近得空,将前端常见的框架总结了一下,在开发的过程之中,有了这些,不断能够提高自己的工作效率,还可以在工作之余了解更多. 1.L ...

  4. 转: codereview 工具平台建设

    一.  Rietveld  code review  (一套工具系统与平台) 1. http://www.cnblogs.com/fang9159/archive/2012/07/20/2591690 ...

  5. 导出oracle 到 mysql的解决办法

    导出oracle 到 mysql的解决办法 使用sqluldr2 命令如下sqluldr2 USER=weibh/1234@dydb file=c:\1.txt sql=sql.sql   FORMA ...

  6. js 获取请求网络协议、IP、端口号、项目名称

      js 获取请求网络协议.IP.端口号.项目名称 CreationTime--2018年6月19日15点54分 Author:Marydon /** * 获取url请求前缀 * @return ht ...

  7. JDBC:数据库操作:事务

    事务特征:原子性,一致性,独立性,持久性. 要想操作事务,必须按照以下步骤完成. 1,取消掉自动提交(SET AUTOCOMMIT=0):每次执行数据库更新的时候实际上发出SQL命令之后就已经提交上去 ...

  8. 42、Java国际化

    简介 国际化的英文单词是Internationalization,有时检测I18N,类似于I18N还有L10N,是Location本地化的简写. Java或计划主要通过如下三个类实现 1.java.u ...

  9. Android 6.0 超级简单的权限申请2 (Permission)

    代码地址如下:http://www.demodashi.com/demo/13506.html 写在前面 上次写了一个权限申请的例子Android 6.0 超级简单的权限申请 (Permission) ...

  10. c++继承总结

    继承 1)继承是面向对象程序设计实现软件重用的重要方法.程序猿能够在已有基类的基础上定义新的派生类. 2) 单继承的派生类仅仅有一个基类.多继承的派生类有多个基类. 3) 派生类对基类成员的訪问由继承 ...