0

我正在使用复杂的列表项来延迟上传图像,我将每个列表项的图像加载到单独的异步任务中,这样它就不会在加载图像时挂起应用程序。

当我向下滚动列表时出现问题,当我向下滚动时,新的 lisitems 图像具有替换图像效果,我发现

例如,如果默认情况下,当我向下滚动时,屏幕上会显示 5 个列表项每次图像因回收而被替换时,图像被替换并且用户在向上滚动或向下滚动时发现替换图像效果......

有没有一种方法可以让我在向下或向上滚动时要求 android 不回收列表项,这样它就不会具有替换图像效果。

任何好的建议都会被采纳

替代文字 http://www.freeimagehosting.net/uploads/8237cbd584.jpg

4

1 回答 1

1

我的理解是您使用适配器中的 getView() 方法为列表项提供自己的布局。所以可能你有这样的事情:

public View getView(int position, View convertView, ViewGroup parent) {

        if(null == convertView){
            convertView = mInflater.inflate(R.layout.row, null);
            //...               
        }
        //... setting new values for your widgets
        return convertView
    }

如果是这种情况,那么您需要回收物品。这样的实现可以防止经常调用垃圾收集器,但是如果这不是问题并且您可以忍受 GC,那么您可以摆脱 if(null==convertView) 并从头开始构建您的项目 - 每次 getView 方法被调用。

但这可能不是一个好主意,最好从回收项目中检索图像小部件,设置一些临时图像,然后启动异步任务以下载正确的图像。
问候!

于 2009-12-17T07:53:40.213 回答