1

私はRecyclerViewにカスタムRecyclerViewアダプタを持っています。SharedPreferecesの後にRecyclerViewアダプタを更新しました

各行RecyclerViewは、CardFlipAnimation(AnimatorSet)を使用して「開く」(ユーザーがクリックしたとき)と表示されます。

各行には、SharedPreferencesのint値を変更するボタンと、この値を示すTextViewというボタンがあります。

複数の行を開いている場合は、すべて開いているすべての行ですべてTextViewsを動的に変更する必要があります。

NotifyDataSetChangedRecyclerView中などの更新データ素晴らしいが、私の主な任務は、今だけで更新する方法を理解することです、彼らが開かれた行を閉じ問題(スタンダール持ち運びにくいため閉鎖され、その後、AnimatorSetで開くため)

ですすべての開いた行に1つのTextViewとそれらを開いたままにしてください(AnimatorSetを触れないでください)。 私はObserverを使うことができると思うが、彼をいかに正しく実装しているか分からなかった。

あなたのアイデアなら、私を助けてください。答え

答えて

0

オクラホマため

おかげで、finaly私は解決策を持って、それは少し醜いですが、それは私が必要とまったく同じように動作します。

まず:私は

 ... 
     public CardBaseAdapter(RecyclerView recyclerView,...) { 
     ... 
     this.mRecyclerView = recyclerView; 
     .... 

を二をアダプタに私のRecyclerViewを渡す:私のアダプタでメソッドを作成します。

public void updateViews() { 

     for(int i =0;i<getItemCount();i++){ 

      HeaderViewHolder holder = (HeaderViewHolder)recyclerView.findViewHolderForAdapterPosition(i); 
      if(holder!=null){ 

      //Update views at holders 
      } 

     } 

} 

サード:私がする必要があるときに、この関数を呼び出します更新ビュー

PS私はこれが正しいビューの更新方法であるかどうかはわかりませんが、別の良い解決策を知っていれば動作し、plsを投稿してください

関連する問題