美文网首页
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