DataBinding 自定义属性

本文介绍了Android开发中使用DataBinding进行自定义属性绑定的方法,通过两个具体例子展示如何定义和使用自定义属性,强调了参数类型在绑定逻辑中的重要性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

(76条消息) Android 开发 之 DataBinding自定义属性绑定_启之灵的博客-CSDN博客

一些属性需要自定义绑定逻辑

例子一

xml

 <com.example.musicprotectedmvvmf.view.MainTabBarView
                        isSelected="@{vm.selectedTabId==MainViewConstant.TAB_FIND}"
                        android:layout_width="wrap_content"
                        android:layout_height="wrap_content"
                        android:onClick="@{()->handlers.onClickTab(MainViewConstant.TAB_FIND)}"
                        android:padding="8dp"
                        app:tabIcon="@drawable/ic_main_tab_podcast"
                        app:tabText="发现" />

代码

@BindingAdapter("isSelected")
    public static void setSelected(View view, boolean isSelected) {
        view.setSelected(isSelected);
    }

参数类型非常重要

第一个参数用于确定与特性关联的视图类型

第二个参数用于确定在给定特性的绑定表达式中接受的类型。

例子二:

xml

 <ImageView
            imgCorner="@{8}"
            imgUrl="@{item.pic}"
            android:layout_width="match_parent"
            android:layout_height="match_parent" />

代码

 @BindingAdapter(value = {"imgUrl","imgCorner"},requireAll = false)
    public static void setImageUrl(ImageView view, Object url, int imgCorner) {
        RequestBuilder<Drawable> request = Glide.with(view).load(url);
        if (imgCorner > 0) {
            request = request.transform(new CenterCrop(), new RoundedCorners(AutoSizeUtils.dp2px(view.getContext(), imgCorner)));

        }else {
            request = request.transform(new CenterCrop());
        }
        request.into(view);
    }

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值