2015-08-15 70 views
1

我有一个带有不同类型行的ListView。该行可能包含文字,图片,视频或其他内容。如果我点击ImageView(行内),我会去其他活动以全屏显示图像,如果我点击视频(在行内),我会去另一个活动播放他的视频。禁用ListView项目的收听者

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

enter image description here

我怎样才能摆脱对这个问题?我认为这可以通过禁用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”,并且该事件将被发送给它的父项。

+0

我的ImageView或视频没有onTouchListener,但是onClickListener。 –

+0

请帮我一把。我的ImageVewi或VideoView没有onTouchListener,而是onClickListener。 –