java - 在不重新填充 RecyclerView 的情况下更新 ViewHolder

标签 java android firebase android-recyclerview

我正在使用 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

enter image description here

最佳答案

当您插入新的时获取该行的位置。然后您可以使用

刷新特定行
notifyItemInserted (int position);

它不是刷新或重新创建 RecyclerView 中的所有数据,而是交替列表的计数并刷新特定位置。

数据集中其他现有项目的表示仍然被认为是最新的,不会被反弹,尽管它们的位置可能会改变。

更多详情引用RecyclerView.Adapter

关于java - 在不重新填充 RecyclerView 的情况下更新 ViewHolder,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41928222/

相关文章:

android - WebView 成 fragment (android.support.v4)

android - 如何跟踪从服务器端或 Rest 客户端发送的 FCM 推送通知?

swift - 如何提取firebase中的所有子项,其某些部分等于某个字符串

c# - Firebase 3 : creating a custom authentication token using . 网络和 c#

java - 将集合设置为 'new ArrayList()' 时级联 hibernate 删除

java - 使用埃拉托色尼筛法生成 k 个素数

java - Flask REST POST 请求根据 json 长度失败 "Bad Request"

java - 如何使用 Axis WSDL2Java 生成的文件?

android - 如何检测应用程序何时最小化或退出

android - 奇怪的 Nullpointer 与 Spanned