我想实现一个RecyclerView内CardView长按RecyclerView 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 2015-04-05 11:12:31
关于第一部分:你的意思是我应该为卡片视图内的所有小部件定义长按事件?如果用户长时间按下小部件以外怎么办? – Amos 2015-04-05 11:25:14
“是否应该回收再利用者的观点?” - 对不起。 Eng.Fouad的答案是不在'RecyclerView'上设置一个长时间的监听器。他正在添加一个触摸项目的侦听器,一个用于检测点击和长时间点击的侦听器。如果你想让整个项目可以长时间点击,那可能是最好的方法。如果您只需要部分项目是可长期点击的,则将侦听器放在项目中的小部件上。 – CommonsWare 2015-04-05 11:29:00