Jetpack_Data Binding入门指南,走进Android架构

如果是在Fragment、Adapter中使用,那就要换个姿势了。

val listItemBinding = ListItemBinding
            .inflate(layoutInflater, viewGroup, false)
//或者
val listItemBinding = DataBindingUtil
            .inflate(layoutInflater, R.layout.list_item, viewGroup, false) 

恭喜,你已经入门了

可以选择继续学习,

看下文

也可以当做了解

点个赞

看看其他文章了~

布局与绑定表达式

在一开始介绍Data Binding Libaray时,就使用了@{}语法,花括号里面的内容称为绑定表达式,绑定表达式其实并不复杂,跟我们正常使用Java和Kotlin语言的表达式没多大区别。那我们可以在表达式中使用什么类型的运算符或者关键字呢?

常用运算符
运算符 符号
算术 加、减、乘、除、求余(+ 、 - 、* 、/、 %)
逻辑 与、或(&&、
一元 + 、-、 !、 ~
移位 >>、 >>>、 <<
关系 == 、> 、<、 >= 、<=(使用符号<时,要换成<)
其他常用的

同时也支持字符拼接+,instanceof,分组、属性访问、数组访问、?:、转型、访问调用,基本类型等等等。 也就是说,绑定表达式语言大多数跟宿主代码(Java or Kotlin)的表达式差不多。为什么说是大多数,因为不能使用thissupernewExplicit generic invocation(明确的泛型调用)等。

丢个栗子:

android:text="@{String.valueOf(index + 1)}"
android:visibility="@{age > 13 ? View.GONE : View.VISIBLE}"
android:transitionName='@{"image_" + id}' 

再举丢个栗子:

android:text="@{user.displayName ?? user.lastName}" 

如果user.displayName不为null则使用,否则使用user.lastName.在这里也看得出,可以通过表达式访问类的属性。绑定类会自动检查当前变量是否为null,以避免发生空指针异常。栗子:如果user变量为null,那么user.lastName也会是null。

集合

像数组,链表,Maps等常见的集合,都可以采用下标[]访问它们的元素。


    
    
    
    
    
    
    
    

…
android:text="@{list[index]}"
…
android:text="@{sparse[index]}"
…
an

你可能感兴趣的:(Android,android,移动开发)