Как перейти к следующему элементу и дальше в режиме утилизации в android. Я реализовал истории в своем приложении. например, истории Instagram или WhatsApp, где, если пользователь нажимает на первый элемент, он переходит к следующему пользователю и так далее ... Как я могу использовать для этого вид ресайклера.
Мой метод RecyclerView:
@Override
public void onBindViewHolder(@NonNull final ViewHolder holder, int position) {
final Story story = mStory.get(position);
holder.itemView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Intent intent = new Intent(mContext, StoryActivity.class);
intent.putExtra("userid", story.getUserid());
mContext.startActivity(intent);
}
});
В моем фрагменте я запрашиваю узел хранилища URL-адресов изображения для каждого пользователя, заполняю его в виде списка и передаю его адаптеру:
story_recycler_view = view.findViewById(R.id.story_recycler_view);
LinearLayoutManager linearLayoutManager1 = new LinearLayoutManager(getContext(),
LinearLayoutManager.HORIZONTAL, false);
story_recycler_view.setLayoutManager(linearLayoutManager1);
storyList = new ArrayList<>();
storyAdapter = new StoryAdapter(getContext(), storyList);
story_recycler_view.setAdapter(storyAdapter);
private void ReadStory() {
final String userId = FirebaseAuth.getInstance().getUid();
FirebaseFirestore db = FirebaseFirestore.getInstance();
followingList.remove(userId);
CollectionReference StoryRef = db.collection("UserStory");
StoryRef.get().addOnCompleteListener(new OnCompleteListener<QuerySnapshot>() {
@Override
public void onComplete(@NonNull Task<QuerySnapshot> task) {
if (task.isSuccessful()) {
final long timecurrent = System.currentTimeMillis();
storyList.clear();
storyList.add(new Story("", String.valueOf(0), 0, "", userId));
for (QueryDocumentSnapshot document : task.getResult()) {
for (String id : followingList) {
if (document.getId().equals(id)) {
FirebaseFirestore db = FirebaseFirestore.getInstance();
db.collection("UserStory")
.document(id)
.collection("Story")
.get().addOnCompleteListener(new OnCompleteListener<QuerySnapshot>() {
@Override
public void onComplete(@NonNull Task<QuerySnapshot> task) {
if (task.isSuccessful()) {
int countStory = 0;
Story story = null;
for (QueryDocumentSnapshot document : task.getResult()) {
story = document.toObject(Story.class);
Date date = story.getTimestamp();
if (date != null) {
long millis = date.getTime();
if (timecurrent > millis && timecurrent < story.getTimeend()) {
countStory++;
}
}
}
if (countStory > 0) {
storyList.add(story);
}
} else {
Log.d(TAG, "Error getting documents: ", task.getException());
}
storyAdapter.notifyDataSetChanged();
}
});
Например, scrollToPosition для позиции в диспетчере компоновки или другой способ может мне помочь .. спасибо