2017-04-06 2 views
0

リサイクルビューを持つ行があり、クリックされたときにその行の位置で無効になるビューがあります。アダプターをリフレッシュした後に、recyclerViewポジションアイテムのビューを元の状態にリセットする方法

adapterData.clear(); 
    adapterData.addAll(refreshedAdapterData); 
    notifyDataSetChanged(); 

...データをリフレッシュした後、以前のリサイクル業者の位置の無効ビューはまだデータが更新されていても無効のまま:私はこのようなアダプタを更新した後

問題があります。 アダプター・データをリフレッシュした後にビューを元の状態にリセットするにはどうしたらいいですか?

+0

リサイクラービューに関連するこれらのビューのモデルはどのくらい正確です – Remario

+0

ここに適切なコードを投稿してください –

答えて

0

下記のコードを使用してください。

adapterData.clear(); 
adapterData.addAll(refreshedAdapterData); 

adapterData.notifyDataSetChanged(); 

OR

recyclerView.invalidate(); 
1

あなたは、すべてのビューのonBindViewHolderメソッドが呼び出されるnotifyDataSetChanged呼び出すとき。私は、データがのために必要な条件を満たしている場合は無効にビューをリセットするには、すべての位置を指示するonBindViewHolderメソッド内で条件文を置くことによって、これを解決した

@Override 
public void onBindViewHolder(final RecyclerView.ViewHolder viewHolder, final int position) { 
      if (refreshedAdapterData.get(position).isInDefaultState()) { 
       //set Default View Values 
      } else { 
       //the code you already have 
      } 

     } 
+0

あなたのコメントを参照して問題を解決しました。ありがとう。 –

+0

@Sbruceこれがあなたの問題を解決するのに役立つ答えだったら、それも答えとしてマークするのが公正だろう。 –

0

:だから、あなたのアダプタ方式のonBindViewHolderでこのような何かを追加することができますリフレッシュされたデータ。

@Christoph Mayr、ご意見ありがとうございます。それは正しい方向に私を向けるのを助けた。

関連する問題