簡體   English   中英

更新 ViewHolder 而不重新填充 RecyclerView

[英]Update ViewHolder Without Re-Populating RecyclerView

我正在使用FirebaseRecyclerAdapter在數據添加到 Firebase 時動態填充視圖。

但是,我還想修改RecyclerViewFirebase數據更改時填充的視圖。 例如,我在每個填充的視圖上都有一個計數器,當人們對該主題進行投票時,我希望計數器增加:

我的想法是為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

在此處輸入圖片說明

當您插入新獲取該行的位置。然后您可以使用刷新特定行

notifyItemInserted (int position);

它不是刷新或重新創建 RecyclerView 中的所有數據,而是交替列表計數並刷新特定位置。

數據集中其他現有項目的表示仍然被認為是最新的,不會反彈,盡管它們的位置可能會改變。

更多細節參考RecyclerView.Adapter

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM