2015-08-15 66 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。 –