2017-07-15 9 views
0

私は30行のデータを持つRecyclerViewを持っています。いくつかの行にはイメージがあり、ピカソでそれを表示します。 問題は、8行ごとにイメージボックスが繰り返されても、その行にイメージがないことです。 イメージが空であれば表示していないが、まだ表示していることを確認する。Android RecyclerViewデータが表示されない場合もあります。

here is an image about it

JobAdapter.java 
    public void onBindViewHolder(RecyclerView.ViewHolder holder, int position) { 
      final MyHolder myHolder = (MyHolder) holder; 
      JobClass current=data.get(position); 
      myHolder.name.setText(current.title); 
      myHolder.manager.setText(current.manager); 
      String phone= (String) new KerashDao(context).JobinfoGetValue(current.job_id.toString(),new KerashDao(context).SettingGetValue("phone").toString()); 
      myHolder.phonecall.setText(phone.toString()); 

      try { 
       if(!current.image.isEmpty()) { 
        Picasso.with(context) 
         .load(current.image) 
         .placeholder(R.drawable.icn_loading) 
         .into(myHolder.picture, new Callback() { 
          @Override 
          public void onSuccess() {myHolder.picture.setVisibility(View.VISIBLE);} 
          @Override 
          public void onError() { 
           myHolder.picture.setVisibility(View.GONE); 
          } 
         }); 
       } 
      }catch (Exception ex){Log.i("JobAdapter2",ex.getMessage().toString()+"");} 

     } 
+0

スクロールしても永久に滞在していますか? – Redman

+0

@Redman。はい、それは8行ごとに繰り返されます。私は 'is_empty'、' equal( "") 'でイメージフィールドをチェックします。 –

+0

これはどんなデバイスなのですか? – Redman

答えて

0

RecyclerViewリサイクル各行を表す図です。これは、スクリーンからスクロールした後、別の行が特定のビューを再利用することを意味します。ある時点でそのビューにイメージをロードしたので、それをクリアするまでスクロールします。

の画像を消去する文に、else句をif(!current.image.isEmpty())ステートメントに追加します。

関連する問題