FirebaseRecyclerAdapter 触发两次
FirebaseRecyclerAdapter firing twice
我在使用 FirebaseRecyclerAdapater
时遇到问题,起初它工作正常,但现在 adapter
触发了两次。数据库引用仅引用一个 child,但它总是触发两次。文本 "counter" 的吐司将出现两次
FirebaseRecyclerAdapter<RequestVisit, RequestViewHolder> requestAdapter =
new FirebaseRecyclerAdapter<RequestVisit, RequestViewHolder>(
RequestVisit.class,
R.layout.seekerrequests_layout,
RequestViewHolder.class,
requestDatabase.child("2DBwmhGplGMoAlLy6337HZEShi93")
) {
@Override
protected void populateViewHolder(final RequestViewHolder viewHolder, RequestVisit model, int position) {
Toast.makeText(getContext(), "counter" +
viewHolder.getAdapterPosition(), Toast.LENGTH_SHORT).show();
}
};
requestVisitList.setAdapter(requestAdapter);
Firebase*Adapter 显示项目列表,child 节点位于您将其附加到的位置下。
如果populateViewHolder
以两个不同的位置被调用,这意味着requestDatabase.child("2DBwmhGplGMoAlLy6337HZEShi93")
下面有两个children。
请记住,如果 2DBwmhGplGMoAlLy6337HZEShi93
是一个具有两个属性的 child 节点,那么您的方法将为每个属性调用 populateViewHolder
。
如果您只想显示 RecyclerView
中的单个项目,您可以创建一个简单的查询:
FirebaseRecyclerAdapter<RequestVisit, RequestViewHolder> requestAdapter =
new FirebaseRecyclerAdapter<RequestVisit, RequestViewHolder>(
RequestVisit.class,
R.layout.seekerrequests_layout,
RequestViewHolder.class,
requestDatabase.orderByKey().equalTo("2DBwmhGplGMoAlLy6337HZEShi93")
)
我在使用 FirebaseRecyclerAdapater
时遇到问题,起初它工作正常,但现在 adapter
触发了两次。数据库引用仅引用一个 child,但它总是触发两次。文本 "counter" 的吐司将出现两次
FirebaseRecyclerAdapter<RequestVisit, RequestViewHolder> requestAdapter =
new FirebaseRecyclerAdapter<RequestVisit, RequestViewHolder>(
RequestVisit.class,
R.layout.seekerrequests_layout,
RequestViewHolder.class,
requestDatabase.child("2DBwmhGplGMoAlLy6337HZEShi93")
) {
@Override
protected void populateViewHolder(final RequestViewHolder viewHolder, RequestVisit model, int position) {
Toast.makeText(getContext(), "counter" +
viewHolder.getAdapterPosition(), Toast.LENGTH_SHORT).show();
}
};
requestVisitList.setAdapter(requestAdapter);
Firebase*Adapter 显示项目列表,child 节点位于您将其附加到的位置下。
如果populateViewHolder
以两个不同的位置被调用,这意味着requestDatabase.child("2DBwmhGplGMoAlLy6337HZEShi93")
下面有两个children。
请记住,如果 2DBwmhGplGMoAlLy6337HZEShi93
是一个具有两个属性的 child 节点,那么您的方法将为每个属性调用 populateViewHolder
。
如果您只想显示 RecyclerView
中的单个项目,您可以创建一个简单的查询:
FirebaseRecyclerAdapter<RequestVisit, RequestViewHolder> requestAdapter =
new FirebaseRecyclerAdapter<RequestVisit, RequestViewHolder>(
RequestVisit.class,
R.layout.seekerrequests_layout,
RequestViewHolder.class,
requestDatabase.orderByKey().equalTo("2DBwmhGplGMoAlLy6337HZEShi93")
)