[英]Recyclerview child item on click issues
我在网格设置中有一个 Reyclerview。
这是它的样子
我的问题是我已经在我的 recyclerview 子卡中实现了红色按钮的 onTouchListeners 以及整个卡的触摸。
[侦听我的适配器中红色按钮的 onTouch 事件和我片段中的 recyclerview 整个子项的 OnItemTouchListener]
现在,当我点击红色按钮时,点击监听器都会触发
我如何确保当我点击红色按钮时,只有 onTouchListener 被触发,而不是整个卡片 onItemTouch 侦听器?
在普通的 gridview 中,当我点击红色时,onclick 侦听器没有重叠,只有 onclick2 被触发,当我点击整个卡片时,onclick1 被触发
感谢您在这方面的任何指示或帮助
代码片段:
mRecyclerApps.addOnItemTouchListener(
new RecyclerItemClickListener(context, new RecyclerItemClickListener.OnItemClickListener() {
@Override public void onItemClick(View view, int position) {
startActivity(context.getPackageManager().getLaunchIntentForPackage(installedApps.get(position).getPackageName() ));
}
})
);
适配器中的红色区域 onTouchListener
holder._appInfo.setOnTouchListener(new View.OnTouchListener() {
@Override
public boolean onTouch(View view, MotionEvent motionEvent) {
Toast.makeText(_ctx, "info button Clicked for " + position, Toast.LENGTH_LONG).show();
return false;
}
});
使用 onClickListener 也无济于事,给出相同的输出
holder._appInfo.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Toast.makeText(_ctx, "info button Clicked for " + position, Toast.LENGTH_LONG).show();
}
});
你做错了,你不能添加itemtouchlistener和内部子触摸,你需要做的就是让那个视图触摸,和子触摸
//parent touch event
holder.main_view.setOnTouchListener(new View.OnTouchListener() {
@Override
public boolean onTouch(View view, MotionEvent motionEvent) {
// parent touch login
return false;
}
});
//child touch event
holder._appInfo.setOnTouchListener(new View.OnTouchListener() {
@Override
public boolean onTouch(View view, MotionEvent motionEvent) {
Toast.makeText(_ctx, "info button Clicked for " + position, Toast.LENGTH_LONG).show();
return false;
}
});
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.