1.布局详解(Layout Detail)
在 “DataBinding入门使用(一)”一文中已经介绍了,DataBinding的布局文件的起始根标签是layout,接下来一个data标签以及一个view标签。下面仔细研究一下这个布局文件。
1)import元素在data标签中使用,这样可以让你像在java代码中导入你的类文件。
<data>
<variable
name="image"
type="com.tan.lgy.testdatabinding.sanpleThreeLayoutDetail.ImageData"/>
<variable
name="handler"
type="com.tan.lgy.testdatabinding.sanpleThreeLayoutDetail.MyHandlers"/>
<import type="android.view.View"/>
</data>
现在你可以在你的表达式中使用View了:
<?xml version="1.0" encoding="utf-8"?>
<layout xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:android="http://schemas.android.com/apk/res/android">
<data>
<variable
name="image"
type="com.tan.lgy.testdatabinding.sanpleThreeLayoutDetail.ImageData"/>
<variable
name="handler"
type="com.tan.lgy.testdatabinding.sanpleThreeLayoutDetail.MyHandlers"/>
<import type="android.view.View"/>
</data>
<LinearLayout
android:id="@+id/body"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
>
<ImageView
android:id="@+id/imageView"
android:layout_width="100dp"
android:layout_height="100dp"
android:src="@mipmap/ic_launcher"
android:visibility="@{image.visibility?View.VISIBLE:View.INVISIBLE}"/>
<Button
android:id="@+id/show"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:onClick="@{(view) -> handler.onShowBtnClick(view,image)}"/>
</LinearLayout>
</layout>
可以看到,这个布局文件里的ImageView直接能使用View了