Android 带有两个FireStoreRecyclerAdapter的嵌套RecyclerView
我想要一个嵌套的Android 带有两个FireStoreRecyclerAdapter的嵌套RecyclerView,android,google-cloud-firestore,android-recyclerview,firebaseui,Android,Google Cloud Firestore,Android Recyclerview,Firebaseui,我想要一个嵌套的RecyclerView,它是通过使用两个FirestoreRecyclerAdapters来填充的,它们从Firestore收集两个不同的请求(responseOne和ResponseTo) 在下面的例子中,用简短的话来描述场景: firstRecyclerView-->使用FirestoreRecyclerAdapter secondRecyclerView(嵌套在firstRecyclerView)中-->使用FirestoreRecyclerAdapter填充 以下是我针
RecyclerView
,它是通过使用两个FirestoreRecyclerAdapter
s来填充的,它们从Firestore收集两个不同的请求(responseOne和ResponseTo)
在下面的例子中,用简短的话来描述场景:
firstRecyclerView
-->使用FirestoreRecyclerAdapter
secondRecyclerView
(嵌套在firstRecyclerView
)中-->使用FirestoreRecyclerAdapter填充
firstRecyclerView = rootView.findViewById(R.id.posts_list_recyclerview);
firstAdapter = new FirestoreRecyclerAdapter<Post, PostHolder>(repsonseOne) {
@Override
public void onBindViewHolder(@NonNull PostHolder holder, int position, @NonNull Post model) {
holder.setPostText_to_UI(model.getText());
}
@NonNull
@Override
public PostHolder onCreateViewHolder(@NonNull ViewGroup group, int i) {
View view = LayoutInflater.from(group.getContext())
.inflate(R.layout.posts_item_cardview, group, false);
secondRecyclerView = view.findViewById(R.id.comments_list_recyclerview);
secondAdapter = new FirestoreRecyclerAdapter<Comment, CommentHolder>(repsonseTwo) {
@Override
protected void onBindViewHolder(@NonNull CommentHolder holder, int position, @NonNull Comment model) {
holder.setAuthorDisplayName_to_UI(model.getAuthorUserId());
}
@NonNull
@Override
public CommentHolder onCreateViewHolder(@NonNull ViewGroup group, int viewType) {
View view = LayoutInflater.from(view.getContext()).inflate(R.layout.posts_comments_item_cardview, group, false);
return new CommentHolder(view);
}
};
secondRecyclerView.setLayoutManager(new LinearLayoutManager(getActivity()));
secondRecyclerView.setItemAnimator(new DefaultItemAnimator());
secondRecyclerView.setAdapter(secondAdapter);
secondAdapter.notifyDataSetChanged();
return new PostHolder(view);
}
};
firstRecyclerView.setLayoutManager(new LinearLayoutManager(getActivity()));
firstRecyclerView.setItemAnimator(new DefaultItemAnimator());
firstRecyclerView.setAdapter(firstAdapter);
firstAdapter.notifyDataSetChanged();
firstRecyclerView=rootView.findViewById(R.id.posts\u list\u recyclerview);
firstAdapter=新FirestoreRecyclerAdapter(repsonseOne){
@凌驾
public void onBindViewHolder(@NonNull PostHolder,int position,@NonNull Post model){
setPostText_to_UI(model.getText());
}
@非空
@凌驾
public PostHolder onCreateViewHolder(@NonNull ViewGroup组,int i){
View=LayoutInflater.from(group.getContext())
.充气(R.layout.posts\u item\u cardview,group,false);
secondRecyclerView=view.findViewById(R.id.comments\u list\u recyclerview);
第二个适配器=新的FireStore回收适配器(repsonseTwo){
@凌驾
受保护的无效onBindViewHolder(@NonNull CommentHolder,int位置,@NonNull CommentModel){
setAuthorDisplayName_to_UI(model.getAuthorUserId());
}
@非空
@凌驾
public CommentHolder onCreateViewHolder(@NonNull ViewGroup group,int viewType){
查看视图=LayoutFlater.from(View.getContext())。充气(R.layout.posts\u comments\u item\u cardview,group,false);
返回新的注释持有者(视图);
}
};
setLayoutManager(新的LinearLayoutManager(getActivity());
setItemAnimator(新的DefaultItemAnimator());
secondRecyclerView.setAdapter(secondAdapter);
secondAdapter.notifyDataSetChanged();
返回新的职位持有者(视图);
}
};
setLayoutManager(新的LinearLayoutManager(getActivity());
setItemAnimator(新的DefaultItemAnimator());
firstRecyclerView.setAdapter(firstAdapter);
firstAdapter.notifyDataSetChanged();
firstRecyclerView
运行良好,没有任何问题,并显示所有数据
但是,secondRecyclerView
没有初始化,我在调试视图中看到这两个方法不是由代码启动的:
public CommentHolder onCreateViewHolder()
受保护的void onBindViewHolder(@NonNull CommentHolder,int position,@NonNull Comment model)
FirestoreRecyclerAdapter
s运行