ProgressBar GridView项

时间:2019-11-14 14:12:01

标签: android android-gridview

我正在使用带有Glide的ProgressBar库来为GridView中的每个项目加载动画点指示器,这可以正常工作,但是我无法为完成下载的每个项目隐藏ProgressBar。

奇怪的行为是,无论哪个项目完成,其加载都将导致进度条仅针对最后一个项目隐藏,进度条将为所有其他已完成的项目继续进行无穷的动画处理。

总而言之,我希望进度条具有与Gilde占位符相同的行为。

XML代码:

        <com.wang.avi.AVLoadingIndicatorView
                android:id="@+id/avi"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_gravity="center"
                app:indicatorColor="@color/skyblue"
                app:indicatorName="BallPulseIndicator"
                style="@style/AVLoadingIndicatorView.Small"
                />
public CustomAdapter_GridViewMainFile(ActivityVideo_Cloud contextActivity, String[] stringArr_File, String[] stringArr_Date) {
            // TODO Auto-generated constructor stub
            context = contextActivity;
            strArr_File = stringArr_File;
            strArr_Date = stringArr_Date;

            inflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
        }

        @Override
        public int getCount() {
            // TODO Auto-generated method stub
            if (strArr_File != null) {
                return strArr_File.length;
            } else {
                return 0;
            }

        }

        @Override
        public Object getItem(int position) {
            // TODO Auto-generated method stub
            return position;
        }

        @Override
        public long getItemId(int position) {
            // TODO Auto-generated method stub
            return position;
        }

        public class Holder {
            AVLoadingIndicatorView avi;
        }

        @Override
        public View getView(final int position, View convertView, ViewGroup parent) {
            // TODO Auto-generated method stub

            holder = new Holder();

            if (convertView == null)
            {
                convertView = inflater.inflate(R.layout.activity_video_gridview_single_checkbox, null);
            }

            holder.avi = convertView.findViewById(R.id.avi);

            Glide.with(getBaseContext())
                    .load(strArr_File[position])
                    .listener(new RequestListener<Drawable>() {
                        @Override
                        public boolean onLoadFailed(@Nullable GlideException e, Object model, Target<Drawable> target, boolean isFirstResource) {
                            holder.avi.hide();

                            return false;
                        }

                        @Override
                        public boolean onResourceReady(Drawable resource, Object model, Target<Drawable> target, DataSource dataSource, boolean isFirstResource) {
                            holder.avi.hide();

                            return false;
                        }
                    })
                    .into(holder.ivImage);

            ...

0 个答案:

没有答案
相关问题