滚动时,RecyclerView项目会刷新

时间:2017-03-17 14:10:28

标签: android postgresql android-recyclerview

当我向下滚动到RecyclerView项目刷新时。

例如,项目具有上下投票,并且还有总评论和总投票。每个项目询问网络服务用户投票,多少票和多少评论。滚动RecyclerView的项目会询问每个项目的Web服务。滚动时,如果用户投票一个项目,有点迟到RecyclerView也总投票和总评论迟到。这对用户来说应该是烦人的。

Edit1:如果您在向上和向下滚动的过程中,RecyclerView会一直询问Web服务甚至已经加载的项目。

我的问题是客户端和服务器端。双方如何才能更有效率?我的解决方案是有效的,但我想知道双方都有更高效的解决方案。你有什么建议吗?

我使用golang编写了Web服务。如果有更有效的方法,我可以改变整个服务。因为这种方式在数据库上有这么多连接。对于一个用户和一个项目,每个Web服务和数据库有6个连接。我是网络服务的新手,我想这种方式有些漏洞。

我想我可以稍微解释一下情景。 Auth用户分享在RecyclerView中显示的帖子图片及其帖子。每个人都显示了帖子,总投票和总评论,但只有auth用户才能投票。

这个问题如此普遍,我知道,但我必须问别人并学习正确的方法。

Android客户端 RecyclerViewAdapter

@Override
public void onBindViewHolder(final PostHolder holder, final int position) {
    final Post post = posts.get(position);
    holder.setTitle(post.getTitle()); 
    holder.setImage(context, post.getImageUrl());

    //voteSum ask the web services
    holder.setVoteSum(post.getPostId().toString());

    //commentSum ask the web services
    holder.setCommentSum(post.getPostId().toString());

    if (getIsAuth()) {
        // did user vote? ask the web services
        holder.setUpDownVote(post.getPostId());
    }

    holder.imbUpVote.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
        // vote and go web service 
        // after call votesum 
        // call againg did user vote? ask the web services
        }

    holder.imbDownVote.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
        // vote and go web service 
        // after call votesum 
        // call againg did user vote? ask the web services
        }

0 个答案:

没有答案