2017-01-30 2 views
2

私はFirebaseRecyclerAdapterを使用して、Firebaseにデータが追加されるとビューを動的に取り込みます。RecyclerViewを再投入せずにViewHolderを更新

ただし、データが変更されるとRecyclerViewが表示されるビューをFirebaseに変更する必要があります。たとえば、私は人口統計の各ビューにカウンターを持っています。人々がそのトピックに投票すると、カウンターを増やしたいと思っています:RecyclerViewに設定されている各ビューにタグを設定し、画面に表示されている現在のビューを取得し、そのビューを動的に更新する方法を見つけることができます。私は一種の私が進むだろうか失ったが、ここで私のPollHolderでいます:ここで

public static class PollHolder extends RecyclerView.ViewHolder { 

    TextView mPollQuestion; 
    TextView mVoteCount; 
    ImageView mPollImage; 
    View mView; 
    String mTag; 


    public PollHolder(View itemView) { 
     super(itemView); 

     mPollQuestion = (TextView) itemView.findViewById(R.id.latest_item_question); 
     mPollImage = (ImageView) itemView.findViewById(R.id.pollThumbNailImage); 
     mVoteCount = (TextView) itemView.findViewById(R.id.latest_item_poll_count); 
     this.mView = itemView; 
    } 

    public void setVoteCount (String voteCount){ 
     mVoteCount.setText(voteCount); 
    } 

    public void setTag(String tag){ 
     this.mTag = tag; 
    } 

    public View getViewByTag(String tag){ 
     return mView; 
    } 

} 

RecyclerViewでの図です。私は右下隅のカウンタを更新したいが、もう一度、完全に再作成/再投入したくない。RecyclerView

enter image description here

答えて

1

あなたがリフレッシュしたり、すべてのRecyclerView内のデータが、その代替のカウントを再作成できません。その

notifyItemInserted (int position); 

を使用して、特定の行を更新することができrow.Thenあなたはそれの位置を取得し、新たな挿入特定の位置を一覧表示して更新します。

データセット内の他の既存アイテムの表現は、最新のものとみなされ、位置が変更されてもリバウンドされません。

詳細を参照してください。RecyclerView.Adapter

関連する問題