【问题标题】:how do I re-show progressBar when a placeholder is shown using Piccaso?当使用毕加索显示占位符时,如何重新显示进度条?
【发布时间】:2014-08-10 09:08:31
【问题描述】:

我有一个 listView,其中每个项目都有一个图像。

每当图像尚未加载到每个项目中时,我都希望有一个进度条。

包括回收列表和再次显示占位符的时间。

另外我以前在没有毕加索的情况下自己下载图片

我曾经将imageUrl设置为每个项目的标签,并在我加载图像之前检查url是否仍然存在(或者因为回收而被替换,然后不需要加载回调图像)。

毕加索如何处理这种回收?

如何配置毕加索图像缓存?

【问题讨论】:

    标签: java android android-listview android-asynctask picasso


    【解决方案1】:

    你必须添加

    progressBar.setVisibility(View.VISIBLE);
    

    在你的 getView() 中像这样:

    @Override
    public View getView(int position, View convertView, ViewGroup parent) {
        View vi = convertView;
        if (convertView == null)
            vi = inflater.inflate(R.layout.list_row, null);
    
        ImageView imageView = (ImageView) vi.findViewById(R.id.imageView);
        final ProgressBar progressBar = (ProgressBar) vi.findViewById(R.id.progressBar);
        TextView textView = (TextView) vi.findViewById(R.id.textView);
    
        textView.setText("" + position);
    
        progressBar.setVisibility(View.VISIBLE);
    
        Picasso.with(activity.getApplicationContext()).load(imagePath).resize(100, 100).centerCrop()
                .into(imageView, new Callback() {
                    @Override
                    public void onSuccess() {
                        progressBar.setVisibility(View.GONE);
                    }
    
                    @Override
                    public void onError() {
                        //error
                    }
                });
    
        return vi;
    }
    

    要了解有关视图回收的更多详细信息,请关注this 链接。

    【讨论】:

    • 谢谢,它有效。但我不明白。如果该项目被回收并且毕加索没有重新下载 - 进度条不会永远存在吗?
    • getView() 每当您的视图生成(第一次数据加载)或视图被回收(数据更改)时都会被调用。现在,每当调用 getView() 时,我们都会调用 progressBar.setVisibility(View.VISIBLE);因此为正在加载的项目显示progressBar。下载图像后,它的可见性就消失了。同样,如果正在加载行,则会显示相同的进度条。它继续......希望这能解释答案。
    猜你喜欢
    • 1970-01-01
    • 2017-02-15
    • 2015-01-29
    • 1970-01-01
    • 1970-01-01
    • 2016-07-14
    • 2013-12-04
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多