android - 如何使用 Glide 进行数据绑定图像加载?
问题描述
我正在尝试使用数据绑定加载图像。但我从来没有克服它。我的问题在哪里?下面是我的代码和布局结构。
MyItemViewModel.kt
@BindingAdapter("imageUrl")
fun loadImage(view: RoundedImageView, url: String) = Glide.with(view.context).load(url).into(view)
布局.xml
<data>
<variable
name="viewModel"
type="com.myapp.app.ui.activity.albumlist.AlbumItemViewModel"/>
</data>
<com.makeramen.roundedimageview.RoundedImageView
android:layout_width="60dp"
android:id="@+id/ivRoundedAlbum"
android:layout_marginStart="@dimen/unit_20_dp"
app:riv_corner_radius="8dp"
app:imageUrl="@{viewModel.data.cover}"
android:layout_height="60dp"/>
解决方案
您需要使url参数可以为空,并像这样防止 null:
@BindingAdapter("imageUrl")
fun loadImage(view: RoundedImageView, url: String?) {
if (!url.isNullOrEmpty()) {
.....
}
}
推荐阅读
- apache-spark - Spark结构化流中的更新或广播变量?
- spring - 如何使用 spring mvc 和 maven 更改默认服务器端口
- reactjs - 仪表板布局的同步融合高度
- append - 证明idris2中关于HList的属性,具体为:length (some_lhs ++ [elem] ++ some_rhs) = length original
- python-3.x - 在字符串中使用 python 正则表达式查找值
- sql - Postgresql 选择没有任何一组值的所有行
- java - Swagger/OpenAPI 如何从 @GetMapping("/**") 测试动态路径
- excel - 将过滤后的数据复制到新工作表
- r - R read.csv2 encoding和fileEncoding参数之间的区别
- php - 在 WooCommerce 上为格式化的计费电话和电子邮件添加标签谢谢