Bir RecyclerView eyleminde işten çıkarma eylemi için bir tokatlamayı uygulamak çalışıyorum ancak ViewHolder'daki herhangi bir Görünümde bir OnClickListener ayarladığımda, o görünümdeki tüm OnTouch olaylarını geçersiz kılar.RecyclerView öğesinde tokatlamak ve OnClick olayları
OnClickListener öğesini bırakıp TouchListener uygulamasındaki tüm tıklamaları halledebilirim, ancak RecycleView öğesinin alt görünümünde birden fazla düğme varsa çok fazla kod olacak ve bu doğru bir şekilde görünmüyor. Benim RecyleView olarak
Ben Swipe (similar to this) dinleyicileri görevden ayarlıyorum:
setOnTouchListener(touchListener);
setOnScrollListener(touchListener.makeScrollListener());
Bu ListView çalışır, ancak olaylar OnTouchListner RecycleView OnClickListener bloklar halinde.
ViewHolder görünümü için düzen örneği.
@Override
public ViewHolder onCreateViewHolder(ViewGroup viewGroup, int i) {
View v = mInflater.inflate(R.layout.push_card_view_compat, viewGroup, false);
return new ViewHolder(v, onClickListener, onKeepListener);
}
ViewHolder: RecyclerView.Adapter içinde şişirilmesi
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:id="@+id/card_title"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:minHeight="72dp"
android:descendantFocusability="blocksDescendants">
<ImageView
android:id="@+id/keep_icon"
android:layout_width="48dp"
android:layout_height="48dp"
android:layout_centerInParent="true"
android:src="@drawable/ic_received" />
I elde
public ViewHolder(final View itemView,
final OnViewHolderClickListener onClickListener,
final OnKeepListener onKeepListener) {
super(itemView);
keepButton = (ImageView) itemView.findViewById(R.id.keep_icon);
itemView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
onItemClickListener.onClick(getPosition(), itemView);
}
});
keepButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
onKeepListener.onClick(getPosition(), itemView);
}
});
}
kodunuzu sonra kod – pskink
neden çok gönderebilir? –
Kod ekledim. –