屏幕小部件中 ListView 中的图像混合在一起
Posted
技术标签:
【中文标题】屏幕小部件中 ListView 中的图像混合在一起【英文标题】:Images in ListView in a screen widget are mixed 【发布时间】:2021-02-19 11:04:09 【问题描述】:我正在开发一个屏幕小部件,我在其中使用 ListView 加载数据。
在从 RemoteViewsService.RemoteViewsFactory 扩展的类中,在方法 getViewAt(position: Int);我尝试为远程视图加载图像:
// Set avatar if any.
if (contact.avatarUri != null)
try
val uri = Uri.parse(contact.avatarUri)
val bitmap: Bitmap = Glide.with(context)
.asBitmap()
.load(uri)
.submit(avatarSize, avatarSize)
.get()
val finalBitmap = getCircleBitmap(bitmap)
view.setImageViewBitmap(id.customAvatarImageView, finalBitmap)
view.setViewVisibility(id.customAvatarImageView, View.VISIBLE)
view.setViewVisibility(id.avatarImageView, View.GONE)
catch (e: Exception)
Log.d(TAG, "Error when loading custom avatar: $e.message")
问题是当我向下滚动然后向上滚动时,这些图像在条目之间“混合”:例如,属于条目 1 的图像现在位于条目 3;所以当我向上滚动条目时,图像不正确。
最好的纠正方法是什么?
【问题讨论】:
【参考方案1】:解决方法是在 getViewAt() 中重置所有视图。
【讨论】:
以上是关于屏幕小部件中 ListView 中的图像混合在一起的主要内容,如果未能解决你的问题,请参考以下文章
如何通过滑翔(或其他)在listView项目中加载小部件中的图像
为啥所有 Slider 小部件在 ListView.builder 中一起移动?