Pab*_* R. 5 android android-layout android-databinding
我正在显示包含项目的列表
<include
layout="@layout/item_tags"
android:title='@{"text"}'
android:image='@{"@drawable/ic_write_item.xml"}'/>
Run Code Online (Sandbox Code Playgroud)
这个布局包含
<layout xmlns:android="http://schemas.android.com/apk/res/android">
<data>
<variable
name="title"
type="java.lang.String" />
<variable
name="image"
type="java.lang.String" />
</data>
Run Code Online (Sandbox Code Playgroud)
...
<ImageView...
android:src="@{image}"/>
<TextView...
android:text="@{title}" />
Run Code Online (Sandbox Code Playgroud)
还创建了myDatabindingAdapter
object DataBindingAdapters {
@BindingAdapter("android:src")
@JvmStatic
fun setImageUri(view: ImageView, imageUri: Uri) {
view.setImageURI(imageUri)
}
@BindingAdapter("android:src")
@JvmStatic
fun setImageDrawable(view: ImageView, drawable: Drawable) {
view.setImageDrawable(drawable)
}
@BindingAdapter("android:src")
@JvmStatic
fun setImageResource(imageView: ImageView, resource: Int) {
imageView.setImageResource(resource)
}
}
Run Code Online (Sandbox Code Playgroud)
并以这种方式在片段中初始化
val binding: FragmentTagsBinding = DataBindingUtil.inflate(inflater,R.layout.fragment_tags, container,false)
return binding.root
Run Code Online (Sandbox Code Playgroud)
当我运行它时,我收到以下错误。
E/BitmapFactory:无法解码流:java.io.FileNotFoundException:@drawable/ic_write_item.xml(没有这样的文件或目录)W/ImageView:resolveUri 在错误的位图 uri 上失败:@drawable/ic_write_item.xml
是不是适配器有问题?我应该发送资源id而不是文件名吗?
谢谢你的帮助。
XML我的问题是在as中声明一个变量String而不是 type="android.graphics.drawable.Drawable"
另请参阅@Janosch 答案@{@drawable/ic_write_item}而不是@{"@drawable/ic_write_item.xml"}
| 归档时间: |
|
| 查看次数: |
6384 次 |
| 最近记录: |