Я хочу осуществить длительное нажатие на CardView внутри RecyclerViewRecyclerView onLongClickListener отказываются вызвать
Расположение:
<android.support.v7.widget.RecyclerView
android:id="@+id/recycler_view"
android:scrollbars="vertical"
android:longClickable="true"
android:hapticFeedbackEnabled="true"
android:layout_width="match_parent"
android:layout_height="match_parent"
/>
Я попытался это:
mRecyclerView = (RecyclerView) rootView.findViewById(R.id.recycler_view);
mRecyclerView.setLayoutManager(new LinearLayoutManager(Utils.context));
mRecyclerView.setOnLongClickListener(new AdapterView.OnLongClickListener() {
@Override
public boolean onLongClick(View view) {
Toast.makeText(Utils.context,"dsfd",Toast.LENGTH_LONG).show();
return true;
}
});
И я также пытался для реализации этого события в классе RecyclerView.ViewHolder, но ничего не работает. У меня длинный эффект нажатия, но само событие не срабатывает. Нет onItemLongClickListener. Я также пробовал это: RecyclerView onClick.
Что мне не хватает?
Поместите слушателей в виджеты в 'RecyclerView', а не на' RecyclerView'. «Я также пробовал это: RecyclerView onClick». - Кажется, у них правильные ответы. – CommonsWare
Что касается первой части: вы имеете в виду, что я должен определить событие с длинным кликом для всех виджетов внутри вида карты? что, если пользователь долго нажимает за пределы виджетов? – Amos
«Должно ли это быть на ресайклере или нет?» -- Прости. Ответ Eng.Fouad не устанавливает прослушиватель длинного щелчка на 'RecyclerView'. Его добавляет прослушиватель на ощупь, который настроен для обнаружения кликов и длительных кликов. Если вы хотите, чтобы весь элемент был долговечным, это, вероятно, лучший подход. Если вам нужно только часть элементов, которые можно долго кликать, поставьте слушателя на виджеты в элементах. – CommonsWare