Android Studio FirebaseRecyclerAdapter仅过滤一次

时间:2018-06-20 16:59:35

标签: java android firebase android-recyclerview recycler-adapter

我正在制作一个应用程序,但在recyclerview中显示项目时遇到问题。我在FirebaseRecyclerAdapter中显示具有以下配置的项目,

firebaseRecyclerAdapter = new FirebaseRecyclerAdapter<postsGetInfo, postsGetInfoViewHolder>(postsGetInfo.class, R.layout.posts_layout,postsGetInfoViewHolder.class,OrderByVotes) {

我遇到的问题是数据库参考

 OrderByVotes = feedRef.child(current_user_id).orderByChild("displayvotes");

如您所见,我正在按票数对recyclerview中的每个项目进行排序。问题是,当用户对某个项目进行投票时,它将缩放至顶部,因为我已将其设置为按displayvotes排序。我希望它首先按投票顺序显示项目,然后在用户投票支持该帖子时使其停留在同一位置而不会四处移动。

要澄清:

  • 我希望这些项目按票数过滤并相应显示。

  • 然后我要删除过滤器orderByChild("displayvotes");

  • 最后,这将首先对商品进行排序,然后删除所有过滤器。

我曾尝试在OrderByVotes中更改OnPopulateViewHolder,但不起作用。如果有人可以指出正确的方向,那就太好了,谢谢!

1 个答案:

答案 0 :(得分:0)

对于阅读此问题的任何人,我都找到了解决方案。它不是完美的,但可以。首先,我制作了feedRef的副本,并按displayvotes的顺序使用了该副本,同时每次每次投票赞成或反对时仍更新feedRef。我在克隆数据库引用中显示了投票,这使我可以在不移动项目的情况下进行投票,但仍会相应地显示投票。