Как перейти к следующей позиции в представлении Recycler android - PullRequest
0 голосов
/ 18 июня 2020

Как перейти к следующему элементу и дальше в режиме утилизации в android. Я реализовал истории в своем приложении. например, истории Instagram или WhatsApp, где, если пользователь нажимает на первый элемент, он переходит к следующему пользователю и так далее ... Как я могу использовать для этого вид ресайклера.

Moving to next stories

Мой метод 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 для позиции в диспетчере компоновки или другой способ может мне помочь .. спасибо

...