【问题标题】:Lazylist hides other images while scrolling if not all images are included如果未包含所有图像,则 Lazylist 会在滚动时隐藏其他图像
【发布时间】:2013-09-04 09:31:08
【问题描述】:

我用这个例子来做一个惰性列表: Lazy load of images in ListView

但在我的列表中,并非所有行都有图像。所以我更新了适配器内部的代码,如果没有图像就隐藏图像视图:

public View getView(int position, View convertView, ViewGroup parent) {
    View vi=convertView;
    if(convertView==null)
        vi = inflater.inflate(R.layout.item, null);

    TextView text=(TextView)vi.findViewById(R.id.text);;
    ImageView image=(ImageView)vi.findViewById(R.id.image);
    text.setText("item "+position);
    if(data[position].contains(".jpg") || data[position].contains(".png"))
    {
        imageLoader.DisplayImage(data[position], image);
    }else
        image.setVisibility(image.GONE);
    return vi;
}

为了测试这一点,我省略了一张图片,如下所示:

private String[] mStrings={
        "http://a3.twimg.com/profile_images/670625317/aam-logo-v3-twitter.png",
        "",
        "http://a3.twimg.com/profile_images/121630227/Droid_normal.jpg",
.....

但是,在运行应用程序后,我注意到列表开始隐藏其他图像,同时以一种奇怪的行为滚动。 只需对代码进行上述两个更改并测试列表即可模拟问题。

【问题讨论】:

    标签: android image android-listview android-lazyadapter


    【解决方案1】:

    您没有重置状态。

    if(data[position].contains(".jpg") || data[position].contains(".png"))
    {
        image.setVisibility(View.VISIBLE);
        imageLoader.DisplayImage(data[position], image);
    }else{
        image.setVisibility(View.GONE);
    }
    

    我还建议将图像设置为默认可绘制或显示进度条而不是图像的加载状态。

    【讨论】:

      猜你喜欢
      • 2023-03-23
      • 2011-12-12
      • 2012-12-01
      • 2018-03-01
      • 1970-01-01
      • 2011-12-18
      • 2013-04-02
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多