如何正确隐藏ListView中的ImageView?

时间:2016-07-03 13:28:14

标签: android listview imageview picasso

我想添加有关小部件的ListView信息:

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

如果img字段不为空,我想在listview中显示图像,如果它是空的,则在ListView中隐藏ImageView。我的适配器为listview提供了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;
}

它不仅在img字段为空时隐藏ImageView,有时当它也不为空时隐藏ImageView。我该如何解决?

2 个答案:

答案 0 :(得分: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);
       }

答案 1 :(得分:0)

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

Movie