【发布时间】:2021-09-24 04:46:08
【问题描述】:
我在我的 Android 应用程序的 Fragment 中实现了 ViewPager2,它将使用 Uri 加载的图像显示到 ImageView(幻灯片库)中。一切正常,但是,当我关闭并重新打开片段时,图像不会被加载。只有当我开始滑动 ViewPager2 时,图像才会再次加载到 ViewPager2 中。奇怪的是,此错误仅发生在较旧的 Android 版本上(已在 Android 6 上测试过),但不会出现在较新的版本(Android 10)上。我认为它可能与 Fragment(缓存或其他东西)有关,因为如果我在 Activity 中实现相同的代码,关闭并重新打开它,则不会发生错误。
知道如何解决此问题,以便始终将图像加载到 Fragment 中的 ViewPager2 中吗?
在Fragment 中实现ViewPager2 的代码:
val media= utilities.getMedia(this)
val mediaList = media.toMutableList()
val adapter = ViewPagerAdapter(mediaList)
photo_view_pager.adapter = adapter
ViewPagerAdapter:
class ViewPagerAdapter (
private val images: List<Media>
) : RecyclerView.Adapter<ViewPagerAdapter.ViewPagerViewHolder>() {
inner class ViewPagerViewHolder(itemView: View): RecyclerView.ViewHolder(itemView)
override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): ViewPagerViewHolder {
val view = LayoutInflater.from(parent.context).inflate(R.layout.item_picture, parent, false)
return ViewPagerViewHolder(view)
}
override fun getItemCount(): Int {
return images.size
}
override fun onBindViewHolder(holder: ViewPagerViewHolder, position: Int) {
val curImageUri = images[position].uri
val thumbnail = holder.itemView.image_preview
thumbnail.post {
Glide.with(thumbnail)
.load(curImageUri)
.into(thumbnail)
}
}
}
提前感谢您的帮助!
【问题讨论】:
标签: android android-fragments android-recyclerview android-viewpager android-viewpager2