我有一个包含不同类型行的ListView。该行可能包含文本,图像,视频或其他内容。如果我点击ImageView(在行内)我将转到另一个活动以全屏显示图像,如果我点击视频(在行内),我将转到另一个活动来播放他的视频。
我在ListView上实现了从右到左的滑动侦听器。如果我从ListView中的空白区域启动ListView滑动,则滑动工作(下图中的第一行和第二行)。但是,如果我从ListView行的项目开始ListView滑动,则滑动不起作用(下图中的第三和第四行)。如果我从ImageView和Video中删除了点击事件,那么即使我从ListView行的项目开始滑动,滑动仍然有效,即在这种情况下滑动适用于整个ListView,无论我在哪一行进行滑动。
我怎样摆脱这个问题?我想如果我禁用ListView中所有项目的所有点击事件,就可以实现这一点。怎么会这样?还有其他办法吗?
我想要在ListView上滑动并单击ListView的项目。
答案 0 :(得分:0)
特技方式,您可以在点击图片或视频时调用listview的onTouchListener项。只需调用imageview的onTouch方法。
ImageView image; // your image view, and asuume the it is initialized.
row.setOnTouchListener(new View.OnTouchListener() {
@Override
public boolean onTouch(View v, MotionEvent event) {
switch (event.getAction()) {
case MotionEvent.ACTION_DOWN:
image.onTouchEvent(event);
break;
}
return false;
}
});
或,您的图片或视频似乎拥有自己的onTouchListener。问题是,他们使用事件并且不将它们发送到它的父视图。因此,请不要返回" true" ,并将该事件发送给它的父母。