Расширяемый RecyclerView с Firestore. Как это сделать? - PullRequest
1 голос
/ 28 апреля 2020

У меня проблема с внедрением расширяемого RecyclerView в мой проект. Я не знаю почему, но мое приложение просто не отвечает при нажатии на cardView. Я буду очень признателен, если вы посмотрите на мой код и напишите, что я могу исправить, если вы обнаружите в нем какую-то ошибку. Итак, сначала ...

public NoteHolder(View itemView) {
           super(itemView);
           textViewTitle = itemView.findViewById(R.id.text_view_title);
           textViewDescription = itemView.findViewById(R.id.text_view_description);
           textViewPriority = itemView.findViewById(R.id.text_view_priority);
           itemView.setOnClickListener(new View.OnClickListener() {
               @Override
               public void onClick(View v) {
                   int position = getAdapterPosition();
                   if (position != NO_POSITION && listener != null) {
                       listener.onItemClick(getSnapshots().getSnapshot(position), position);
                   }
               }

           });
       }
   }

в моем NoteHolder установлено listener с onItemClick на нем. Итак, давайте посмотрим на метод onItemClick в HomeFragment

public class HomeFragment extends Fragment {...

FirestoreRecyclerOptions<Note> options = new FirestoreRecyclerOptions.Builder<Note>()
                .setQuery(query, Note.class)
                .build();

        adapter = new NoteAdapter(options);
        RecyclerView recyclerView = RootView.findViewById(R.id.recycler_view);
        recyclerView.setHasFixedSize(true);
        recyclerView.setLayoutManager(new LinearLayoutManager(getContext()));
        recyclerView.setAdapter(adapter);

        //DetailView
        View CardView = inflater.inflate(R.layout.note_item, container, false);
        final ConstraintLayout cardView = CardView.findViewById(R.id.relativeLayout);

        adapter.setOnItemClickListener(new NoteAdapter.OnItemClickListener() {
            @Override
            public void onItemClick(final DocumentSnapshot documentSnapshot, int position) {

                Note note = documentSnapshot.toObject(Note.class);
                int pathInt = position;
                constraintLayout = cardView.findViewById(R.id.expandableLayout);
                String path =String.valueOf(pathInt);
                 if(possition != NO_POSSITION) {
                     Animation slideDown = AnimationUtils.loadAnimation(context, R.anim.slide_out_top);
                     constraintLayout.setVisibility(View.VISIBLE);

                     //adding sliding effect
                     constraintLayout.startAnimation(slideDown);
                 }
            }
        });

if (possition! = NO_POSSITION) {...}

this if выполнено, я попытался вставить в него Log.d, и оно показало ожидаемое сообщение.

...