Я хочу иметь вложенный RecyclerView
, который заполняется с помощью двух FirestoreRecyclerAdapter
с, которые собирают два разных запроса (responseOne и responseTwo) из Firestore.
В следующем сценарии короткими словами:
firstRecyclerView
-> заполняется FirestoreRecyclerAdapter<Post, PostHolder>
secondRecyclerView
(вложено в firstRecyclerView
) -> заполните FirestoreRecyclerAdapter<Comment, CommentHolder>
Вот мой код для этого сценария:
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
работает хорошо без каких-либо проблем и показывает все данные.
Однако secondRecyclerView
не инициализируется, и я увидел в Debug View, что эти два метода не были запущены кодом:
public CommentHolder onCreateViewHolder()
protected void onBindViewHolder(@NonNull CommentHolder holder, int position, @NonNull Comment model)
Что я могу сделать, чтобы запустить эти два FirestoreRecyclerAdapter
?