2017-12-29 28 views
0

アダプタonBindViewHolderメソッドの位置0で何かしたい。 コードを以下に示します。recyclerViewアダプタの特定の位置で何かするには?

@Override 
    public void onBindViewHolder(final MyViewHolder myViewHolder, final int position) { 
     if(position == 0) 
     { 
      myViewHolder.transparentBlackView.setVisibility(View.GONE); 
     } 
     Picasso.with(context).load(urlList.get(position)).into(myViewHolder.pictureImageView); 
     transparentViewList.add(myViewHolder.transparentBlackView); 
     myViewHolder.positionTextView.setText(position+""); 
    } 

しかし、コードがブロック(myViewHolder.transparentBlackView.setVisibility(View.GONEが);)内部の場合、なぜ私は知らない、あまりにも位置9上で動作しますか?

誰かが私を助けることができますか?

+0

その他の部分thats –

答えて

1

elseも追加する必要があります。

public void onBindViewHolder(final MyViewHolder myViewHolder, final int position) { 
    if(position == 0) 
    { 
     myViewHolder.transparentBlackView.setVisibility(View.GONE); 
    }else{ 
    myViewHolder.transparentBlackView.setVisibility(View.VISIBLE); 
    } 
    Picasso.with(context).load(urlList.get(position)).into(myViewHolder.pictureImageView); 
    transparentViewList.add(myViewHolder.transparentBlackView); 
    myViewHolder.positionTextView.setText(position+""); 
} 
+0

それは働いた。しかし、なぜ私は他の部分が必要なのか分かりません。 –

+0

同じViewHolderが次の位置に戻ってきて、単にGONEを作成しただけなので、else部分がなくても永遠に 'GONE'になります。 Plsはその答えを受け入れる.Thx – ADM

+0

あなたは次のポジションを言ったが、ポジション9のブロックでコードを実行すると言った。何が起こるのか分からない。 –

関連する問題