美文网首页
data binding library (二)

data binding library (二)

作者: Android派 | 来源:发表于2018-04-12 17:17 被阅读0次

data binding library (一)

事件处理

各类view的事件绑定(TextView ImageView CheckBox EditText ListView CustomView)

TextView 点击事件绑定
//view 层

<data>
       <variable
            name="acitivity"
            type="com.xwjr.wwxh_login.activity.LoginActivity" />  //导入相关变量,即view的事件触发的那个类
</data>

 <TextView
            android:id="@+id/login"
            android:layout_width="0dp"
            android:layout_height="40dp"
            android:layout_marginLeft="30dp"
            android:layout_marginRight="30dp"
            android:layout_marginBottom="10dp"
            android:background="#dfd"
            android:gravity="center"
            android:text="登录"
            android:onClick="@{acitivity::login}"    //此处绑定对应的函数名(login)
            app:layout_constraintBottom_toBottomOf="parent"
            app:layout_constraintLeft_toLeftOf="parent"
            app:layout_constraintRight_toRightOf="parent" />

//java类
activityMainBinding.acitivity = this  //绑定数据,我这里直接用的当前activity所有用this代替
fun login(view: View) {
}

ImageView

开始踩坑

//先来个java类吧 这个类随便放,不用在哪里调用  @BindingAdapter 注解写好就行
public class ImageViewAttrAdapter {

//绑定的方法就像传入的参数一样,默认会有一个imageView,该方法传入了3个参数,如果要调用这个,xml也需要有3个属性
    @BindingAdapter({"app:imageUrl", "app:placeHolder", "app:error"})
    public static void loadImage(ImageView imageView, String url, Drawable holderDrawable, Drawable errorDrawable) {
        Glide.with(imageView.getContext())
                .load(url)
                .placeholder(holderDrawable)
                .error(errorDrawable)
                .into(imageView);  
    }

    @BindingAdapter({"app:imageUrl"})
    public static void loadImage(ImageView imageView, String url) {
        Glide.with(imageView.getContext())
                .load(url)
                .into(imageView);
    }
}

//look look  xml 文件   会有上面注解传入的3个属性值,这个要跟上面的java 匹配   
 <ImageView
            android:layout_width="0dp"
            android:layout_height="0dp"
            android:background="@color/colorAccent"
            app:imageUrl="@{`http://ww1.sinaimg.cn/large/7a8aed7bjw1f2zwrqkmwoj20f00lg0v7.jpg`}"
            app:placeHolder="@{@drawable/login_wx_icon}"
            app:error="@{@drawable/login_wx_icon}"
            app:layout_constraintBottom_toBottomOf="parent"
            app:layout_constraintLeft_toLeftOf="parent"
            app:layout_constraintRight_toRightOf="parent"
            app:layout_constraintTop_toTopOf="parent" />

//so 这样就可以显示图片了
//友情提示:暂不支持 mipmap的资源,会报错

1
1
1

11

1
1
1
1

相关文章

网友评论

      本文标题:data binding library (二)

      本文链接:https://www.haomeiwen.com/subject/uyatkftx.html