DataBinding的使用(一)

DataBingding个人使用很久了,觉得很好用且方便,让自己的代码更加简单且少,读取来更有可读性。建议还未入手的赶紧用起来,真的是方便快捷简单。常规用法很简单,我将使用中需要注意的地方进行一下总结和归纳。本篇文章适合DataBinding的进阶和扩展学习。DataBinding的基础学习地址为:DataBinding中文官方文档

 

使用注意细节

虽然DataBinding使用简单,但是还有些需要注意的地方,我将在下面意义列举出来。

DataBinding(二)


目录

背景和使用限制

使用DataBinDing的优点

如何配置

符号转义

使用注意细节


背景和使用限制

早在2015谷歌 I/O大会上就已提出DataBinding。如下是2018年google I/O大会,发布的AAC及其他的图。在2019的I/O 大会中AAC 有了新的趋势和改变CameraX、SavedState for ViewModel、Jetpack Compose。

数据绑定库既具有灵活性又具有广泛的兼容性—它是一个支持库,因此您可以将其与所有Android平台以及Android 2.1(API级别7+)一起使用。同时要满足Android Gradle 1.5.0-alpha1或更高版本的插件。

使用DataBinDing的优点

1.再也不需要编写findViewById了,比butterknife好用多了

2.实时监测数据,自动刷新控件显示

针对每个Activity或者Fragment的布局,在编译阶段,会自动生成一个ViewDataBinding类的对象,该对象持有Activity要展示的数据和布局中的各个view的引用。同时还有如下优势:将数据分解到各个view、在UI线程上更新数据、监控数据的变化,实时更新,这样一来,你要展示的数据已经和展示它的布局紧紧绑定在了一起。

如何配置

首先在module的build.gradle中配置如下

上面的配置满足了Java形式的支持,如果你是需要支持在kotlin中使用Databinding,则需要在module的build.gradle中继续配置

为什么配置了 dataBinding{enabled = true}之后就可以使用dataBinding方式进行开发了?

Android Studio中是依靠gradle来管理项目的,在创建一个项目时,从开始创建一直到创建完毕,整个过程是需要执行很多个gradle task的,这些task有很多是系统预先帮我们定义好的,比如build task,clean task等,DataBinding相关的task也是系统预先帮我们定义好的,但是默认情况下,DataBinding相关的task在task列表中是没有的,因为我们没有开启dataBinding,但是一旦我们通过 dataBinding{enabled = true}的方式开启DataBinding之后,DataBinding相关的task就会出现在task列表中,每当我们执行编译之类的操作时,就会执行这些dataBinding Task, 这些task的作用就是检查并生成相关dataBinding代码,比如dataBindingExportBuildInfoDebug这个task就是用来导出debug模式下的build信息的。

ActivityMainBinding这个类从哪来的?

通过第一个问题的解释,我们也就知道了ActivityMainBinding这个类其实是系统帮我们自动生成的。
但是如果你在实际编写代码的过程中,你会发现并没有执行编译、运行之类等操作,ActivityMainBinding这个类就直接能用了,竟然还有这种操作?其实是Android Studio 这个IDE自动帮我们做了这一步,在默认情况下,系统会使用Android Studio为我们自动生成databinding相关的代码,但是这种方式生成的代码不能调试,如果你想通过点击ActivityMainBinding跳转到它的源码中,你会发现并不能如你所愿,而是会跳转到对应的布局文件中。那么如果我们确实要查看ActivityMainBinding的源码并且还想调试,我们就需要通过另外一种方式:手动编译代码。这两种方式可以通过Android Studio的设置面板修改。

符号转义

在我们使用过程中,有些地方是需要使用转义字符的,如:

这样会报编译错误,我们需要将<>进行转义表示

显示结果 描述 转义字符 十进制
  空格 &nbsp; &#160;
< 小于号 &lt; &#60;
> 大于号 &gt; &#62;
& 与号 &amp; &#38;
" 引号 &quot; &#34;
撇号 &apos; &#39;
× 乘号 &times; &#215;
÷ 除号 &divide; &#247;

 


 

发布了17 篇原创文章 · 获赞 1 · 访问量 1万+
展开阅读全文

没有更多推荐了,返回首页

©️2019 CSDN 皮肤主题: 技术工厂 设计师: CSDN官方博客

分享到微信朋友圈

×

扫一扫,手机浏览