[Android][DataBinding][DataBinding布局详解(三)]

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了

还有 92% 的精彩内容
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。
支付 ¥2.99 继续阅读

推荐阅读更多精彩内容