У меня проблема с внедрением расширяемого 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
, и оно показало ожидаемое сообщение.