2016-07-03 78 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() { 
        } 
       });