我正在使用 FirebaseRecyclerAdapter
在数据添加到 Firebase 时动态填充 View 。
但是,我还想修改 RecyclerView
随着 Firebase
中的数据更改而填充的 View 。例如,我在每个填充的 View 上都有一个计数器,当人们对该主题进行投票时,我希望计数器增加:
我的想法是为填充在 RecyclerView
中的每个 View 设置一个标记,找到一种方法来获取屏幕上的当前 View ,然后动态更新这些 View 。我有点不知道如何进行,但这是我的 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
中的 View 。我想要更新右下角的计数器,但我又不想完全重新创建/重新填充 RecyclerView
。
最佳答案
当您插入新的时获取该行的位置。然后您可以使用
刷新特定行notifyItemInserted (int position);
它不是刷新或重新创建 RecyclerView 中的所有数据,而是交替列表的计数并刷新特定位置。
数据集中其他现有项目的表示仍然被认为是最新的,不会被反弹,尽管它们的位置可能会改变。
更多详情引用RecyclerView.Adapter
关于java - 在不重新填充 RecyclerView 的情况下更新 ViewHolder,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41928222/