如何解决不要将对象添加到 recyclerview
我需要使用 textField 提供的搜索参数填充回收器视图。
这个 recyclerview 由我的应用的所有用户组成,但我不应该在那里,因为我无法搜索自己。
我使用 firestore 和 FirebaseUI 来填充回收器视图,并使用我使用此方法的文本字段中写入的每个字母填充回收器视图:
searchParameter.observe(getViewLifecycleOwner(),s -> {
Query query = Firestore.COLLECTION_REFERENCE_USER
.orderBy("username")
.startAt(s).endAt(s + "\uf8ff");
//RecyclerOptions
FirestoreRecyclerOptions<UserModel> options = new FirestoreRecyclerOptions.Builder<UserModel>()
.setQuery(query,UserModel.class)
.build();
adapter.updateOptions(options);
});
我的应用程序中的用户名没有唯一性,但唯一性是用户的电子邮件,因此我的第一个解决方案是添加一个参数以被视为与此查询不同,如下所示:
Query query = Firestore.COLLECTION_REFERENCE_ISCRITTO
.orderBy("username")
.startAt(s).endAt(s + "\uf8ff")
.whhereNotEqualTo(Firestore.KEY_EMAIL,user.getEmail());
这不起作用,因为我按用户名对结果进行排序,所以我想,如果我无法解决查询中的问题,我可以在适配器的 onbindViewHolder 方法中解决它。
问题 它存在,如果存在,在验证要插入的项目是我的电子邮件中的项目后,避免通过 onBindViewHolder 插入该项目的好策略是什么?
解决方法
根据评论,OP 确认解决方案是在 BindViewHolder 上使用以下内容:
if(uid.equals(id)){
RecyclerView.LayoutParams param = (RecyclerView.LayoutParams)holder.itemView.getLayoutParams();
param.height = 0;
param.width = LinearLayout.LayoutParams.MATCH_PARENT;
holder.itemView.setVisibility(View.VISIBLE);
}
else {}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。