禁用ListView项目的侦听器

时间:2015-08-15 07:55:32

标签: android listview android-listview swipe

我有一个包含不同类型行的ListView。该行可能包含文本,图像,视频或其他内容。如果我点击ImageView(在行内)我将转到另一个活动以全屏显示图像,如果我点击视频(在行内),我将转到另一个活动来播放他的视频。

我在ListView上实现了从右到左的滑动侦听器。如果我从ListView中的空白区域启动ListView滑动,则滑动工作(下图中的第一行和第二行)。但是,如果我从ListView行的项目开始ListView滑动,则滑动不起作用(下图中的第三和第四行)。如果我从ImageView和Video中删除了点击事件,那么即使我从ListView行的项目开始滑动,滑动仍然有效,即在这种情况下滑动适用于整个ListView,无论我在哪一行进行滑动。

enter image description here

我怎样摆脱这个问题?我想如果我禁用ListView中所有项目的所有点击事件,就可以实现这一点。怎么会这样?还有其他办法吗?

我想要在ListView上滑动并单击ListView的项目。

1 个答案:

答案 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" ,并将该事件发送给它的父母。