Ami*_*emi 0 data-binding android loadimage android-binding-adapter
我为加载图像 url 编写了一个自定义属性,如下所示:
@BindingAdapter("srcCircleUrl")
fun loadCircleImage(view: ImageView, imageUrl: String) {
loadImage(view.context, imageUrl, view, options = circleCropTransform())
}
Run Code Online (Sandbox Code Playgroud)
当我想在 xml 中设置一个原始字符串时,它给了我srcCircleUrl attribute not found错误。
例如,如果我写这样的东西,它不起作用:
<ImageView
android:layout_width="60dp"
android:layout_height="60dp"
android:layout_marginStart="16dp"
android:layout_marginTop="16dp"
android:layout_marginBottom="16dp"
app:srcCircleUrl="https://66.media.tumblr.com/97bcd9782631f8bef87bb30e830344a6/tumblr_owxu10zbPB1tl4ciuo4_250.png"
android:scaleType="centerCrop"
tools:srcCompat="@drawable/flag_iran" />
Run Code Online (Sandbox Code Playgroud)
所以,问题是,如何将原始字符串作为自定义数据绑定属性的输入?
我还测试了这些方法:
app:srcCircleUrl="@{https://66.media.tumblr.com/97bcd9782631f8bef87bb30e830344a6/tumblr_owxu10zbPB1tl4ciuo4_250.png}"
app:srcCircleUrl="@{`https://66.media.tumblr.com/97bcd9782631f8bef87bb30e830344a6/tumblr_owxu10zbPB1tl4ciuo4_250.png`}"
Run Code Online (Sandbox Code Playgroud)
您需要像这样用单引号和大括号将字符串括起来app:something='@{"my string"}'。
我认为这应该适合你:
<ImageView
android:layout_width="60dp"
android:layout_height="60dp"
android:layout_marginStart="16dp"
android:layout_marginTop="16dp"
android:layout_marginBottom="16dp"
app:srcCircleUrl='@{"https://66.media.tumblr.com/image.png"}'
android:scaleType="centerCrop"
tools:srcCompat="@drawable/flag_iran" />
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
607 次 |
| 最近记录: |