我想實現一個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