2016-07-03 52 views
1

我想要添加到ListView的有关部件:如何在ListView中正确隐藏ImageView?

public class Widget { 
    String w_type; 
    String title; 
    String desc; 
    String img; 
    //.... 
} 

我想表明在列表视图图像,如果IMG场不空的ListView和隐藏ImageView的,如果它是空的。有一个从我的适配器getView方法的当前代码列表视图:

public View getView(int i, View someView, ViewGroup arg2) { 
    LayoutInflater inflater = LayoutInflater.from(context); 
    if (someView == null) { 
     someView = inflater.inflate(R.layout.widgets_list, arg2, false); 
    } 

    ImageView img = (ImageView) someView.findViewById(R.id.pic); 

    if (!img_url.equals("")){ 
     Picasso.with(context).load(img_url).into(img); 
     } 
     else { 
      img.setVisibility(View.GONE); 
     } 

    return someView; 
} 

它藏匿的ImageView不仅当的img字段为空,但有时当它太不为空。我该如何解决它?

+0

你在哪里设置你的img_url?你能提供那个代码吗?列表中的每个项目是否有不同的img_url? – babadaba

回答

1

我觉得你的ImageView还是从较早的调用隐藏img.setVisibility(View.GONE);所以才重新显示一遍。

if (!img_url.equals("")){ 
     Picasso.with(context).load(img_url).into(img); 
      img.setVisibility(View.VISIBLE); 
     } 
     else { 
      img.setVisibility(View.GONE); 
     } 
0

通常毕加索制作一个线程并加载图像。最简单的方法,但你可以做一些回调函数。 在这里

Picasso.with(context) 
     .load(imageUrl) 
     .into(img, new com.squareup.picasso.Callback() { 
        @Override 
        public void onSuccess() { 

        } 

        @Override 
        public void onError() { 
        } 
       });