- 博客(8)
- 收藏
- 关注
原创 DataBinding(七)tips
<TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="@{user.firstName, default=`I am a placeholder`}"/>使用default属性设置AndroidStudio预览面板中的默认显示内容,...
2018-03-23 16:43:54 125
原创 DataBinding(六)数据转换
当一个对象从binding表达式中返回的时候,就会自动去查找默认、重命名或自定义的setter。然后该对象会被转型成为所选setter的参数类型。这时候对于使用ObservableMaps就很方便,返回的值会自动转换为setter的参数类型,不过如果可能产生混淆的话,还是需要手动去转型。<TextView android:text='@{userMap["lastName"]}...
2018-03-23 16:43:26 2831
原创 DataBinding(五)自动更新
虽然使用普通的Java对象就可以把数据绑定到UI界面,但是当数据变动时,UI却不会及时更新,所以DataBinding提供了observable objects、observable fields、observable collections来达到自动更新的效果。observable objects如果一个类实现了android.databinding.Observable接口,则Da...
2018-03-23 16:42:12 1157
原创 DataBinding(四)属性设置
1. 默认setter对于设置了DataBinding表达式的XML属性,DataBinding会根据属性表达式的返回值查找该属性的setter方法,比如android:text="@{"str"}"属性是去找setText(String)方法,所以表达式的返回值类型是十分重要的,影响着DataBinding查找的具体方法。如果View不提供某个属性的XML属性,但是其实包含了该属性的se...
2018-03-23 16:41:55 620
原创 DataBinding(三)事件处理
DataBinding可以在XML中使用事件的回调方法名作为属性名(大部分情况下)来处理View分发的事件。比如说View.OnLongClickListener的回调方法是onLongClick,所以这个事件的属性名称就是android:onLongClick。事件的处理可以有两种方式: 1. 方法引用:在事件属性的表达式中调用一个方法,这个方法的签名必须和事件回调方法签名一致。当事件回调...
2018-03-23 16:41:04 1045
原创 DataBinding(二)变量及表达式
1. 概述在DataBinding的布局文件当中,可以引入各种变量,并在布局文件中使用变量表达式,达到数据绑定的效果。引入的变量可以使用完整类名,或者使用标签导包。与Java一样,java.lang的包是默认导入的。具体格式及使用方法如下:<?xml version="1.0" encoding="utf-8"?><layout xmlns:android="h...
2018-03-23 16:37:36 3408
原创 DataBinding(一)基础
1. 导入在module的build.gradle中声明android { dataBinding { enabled true }}如果依赖库中使用了DataBinding,则module也要使用DataBinding才行。Android Gradle Plugin 3.1.0 canary 6提供了另外一种新的DataBinding编译器V...
2018-03-23 16:36:58 515
原创 Scroller
了解Scroller之前,需要了解一下scrollBy()和scrollTo()的具体原理,这里是学习了谷哥的小弟关于Scroller的解析。首先看一下scrollBy()和scrollTo()方法的实现:public void scrollBy(int x, int y) { scrollTo(mScrollX + x, mScrollY + y);}public vo...
2018-03-23 16:05:57 286
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人