如何在 Android 中向 ViewPager 添加进度条

Posted

技术标签:

【中文标题】如何在 Android 中向 ViewPager 添加进度条【英文标题】:How to Add progress bar to ViewPager in Android 【发布时间】:2012-04-17 21:50:24 【问题描述】:

如何在 android 中为 ViewPager 添加进度条?

我的情况是我必须在 ViewPager 中加载 imageURL。当用户滑动页面时,如果 ImageURL 没有加载,我需要显示进度条/正在加载 GIF 图片。

有可能吗?

【问题讨论】:

尝试在你的场景中使用lazy loading。在这个东西中使用普通的优先级线程在后台渲染你的图像。在你的情况下尝试使用进度对话框而不是进度条。 【参考方案1】:

您可以尝试在自己的视图中处理它,而不是将其与 viewpager 捆绑在一起。

【讨论】:

【参考方案2】:

我认为 Satya 正在考虑以下类似的事情。 在您的 viewpager 适配器类中,您应该有这个方法:

@Override
            public Object instantiateItem(View collection, final int position) 

                LayoutInflater inflater = (LayoutInflater) collection.getContext()
                        .getSystemService(Context.LAYOUT_INFLATER_SERVICE);


                final FrameLayout imageLayout = (FrameLayout) inflater.inflate(R.layout.fotopager_buttons, null);
                final ImageView imageView = (ImageView) imageLayout.findViewById(R.id.image);
                final ProgressBar spinner = (ProgressBar) imageLayout.findViewById(R.id.loading);

                imageLoader.displayImage(Gallery.get_big_image_url(position), imageView, options, new ImageLoadingListener() 
                    @Override
                    public void onLoadingStarted() 
                    spinner.setVisibility(View.VISIBLE);
                    

                    @Override
                    public void onLoadingFailed() 
                    spinner.setVisibility(View.GONE);
                    imageView.setImageResource(android.R.drawable.ic_delete);
                    

                    @Override
                    public void onLoadingComplete() 
                    spinner.setVisibility(View.GONE);
                    
                    );


                views.put(position, iv);

                ((ViewPager) collection).addView(imageLayout,0);

                return imageLayout;

还有像这样的 R.layout.fotopager_buttons.xml:

<?xml version="1.0" encoding="utf-8"?>

<ImageView
    android:id="@+id/image"
    android:layout_
    android:layout_
    android:layout_gravity="center"
    android:adjustViewBounds="true" />

<ProgressBar
    android:id="@+id/loading"
    android:layout_
    android:layout_
    android:layout_gravity="center"/>

您可以在此处查看 imageLoader 类的其余部分:https://github.com/nostra13/Android-Universal-Image-Loader/blob/master/UniversalImageLoaderExample/src/com/nostra13/example/universalimageloader/ImagePagerActivity.java

【讨论】:

这是出现运行时异常的问题..显示 Configuration=null 好吧,我刚刚发布了一段完整的代码。让我们尝试检查所附链接中的所有其余部分。 我从那个链接下载了代码..它工作正常,但如果我添加我的 imageURLS 则存在问题 @Zappescu 附加的链接不再有效! @mazen 这是新链接:github.com/nostra13/Android-Universal-Image-Loader/blob/master/…

以上是关于如何在 Android 中向 ViewPager 添加进度条的主要内容,如果未能解决你的问题,请参考以下文章

如何使用导航抽屉和viewpager/viewpager2在java中制作android应用程序

android ViewPager+Fragment 如何在ViewPager的Activity中获取Fragment中的控件对象

如何在android中向AlarmManager添加3个日期

如何在Android中使用viewPagerindicator和ViewPager?

如何在 Android Studio 中的 ViewPager 小部件之上设置布局

如何在 Android 中为 ViewPager 添加点?