Glide在ViewPager2首个Fragment无法自动显示图片的问题及解决
Firebase相册全屏图片浏览:Glide加载问题排查与解决
我开发的应用支持创建相册并将照片存储到Firebase中查看,为实现类似Google Play商店的全屏图片浏览效果,我搭建了包含ViewPager2的Activity,搭配Fragment和Adapter展示图片,但使用Glide加载图片时遇到了以下问题:
- 最初使用
Glide.with(MediaViewerFragment.this).load(imageUrl).into(image);代码,图片完全无法显示; - 改用添加RequestListener并调用submit()后,首个Fragment的图片加载完成(日志已确认加载成功),但图片不显示,加载进度条也不会自动消失,必须触摸ViewPager2或者切换Fragment再返回,图片才会正常显示。
最终通过添加placeholder和error方法,并改用into(image)替代submit(),问题得到解决,修复后的代码示例如下:
Glide.with(image) .load(getImageUrl()) .placeholder(R.drawable.transparent_background) .error(R.drawable.transparent_background) .addListener(new RequestListener<Drawable>() { @Override public boolean onLoadFailed(@Nullable GlideException e, Object model, Target<Drawable> target, boolean isFirstResource) { loadingLinear.setVisibility(View.GONE); errorLinear.setVisibility(View.VISIBLE); errorReasonText.setText(e.getMessage()); return false; } @Override public boolean onResourceReady(Drawable resource, Object model, Target<Drawable> target, DataSource dataSource, boolean isFirstResource) { loadingLinear.setVisibility(View.GONE); return false; } }) .into(image);
内容的提问来源于stack exchange,提问作者thewolf1119
相关产品推荐
相关产品推荐

