Kotlin自定义View在databinding中使用attr自定义属性编译报错问题

Kotlin自定义View在databinding中使用attr自定义属性编译报错问题

问题描述:

在自定义view 中给attr.xml中自定义属性(book_name)设置 databinding数据之后,编译报错
xxxxx/demo/DataBinderMapperImpl.java:9: 错误: 找不到符号
import xxxx.demo.databinding.ActivityMainBindingImpl;

<com.xxx.CusView
            android:id="@+id/cusView"
            android:background="#ffffff"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            app:book_name="@{datarepository.bookName}"
            />

原因分析:

在一篇csdn博客中收到启发。kotlin 这边使用attr自定义的属性名引用databinding数据会报错。改成在该自定义view中使用set属性名方式然后引用该属性则不报错

参考https://blog.csdn.net/qq_43522147/article/details/108609491
和那篇博客中问题不同之处在于自定义view那篇是使用自定义布局, 我这里是自绘制的自定义view出的问问题,解决思路和方法是和那篇一样的改使用set属性方式


解决方案:

自定义控件: CusView{

//自定义属性名称
var booName: String? = “”

}

在xml中使用:
<com.xxx.CusView
app:bookName=“datarepository.bookName”/>

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值