0

我有以下佈局ViewSwitcher和ListView

<ViewSwitcher> 
    <LinearLayout> 
    <ListView /> 
    </LinearLayout> 

    <LinearLayout> 
    <ListView /> 
    </LinearLayout> 
</ViewSwitcher> 

但是當我切換ViewSwitcher(由onTouchListener)的ListView的onItemClickListener在我的佈局也做出響應。我不需要在切換。如何解決它?

這是我的切換器類:

public class MMGViewSwitcher extends ViewSwitcher{ 
private float startX = 0; 
private float startY = 0; 
private float endX = 0; 
private float endY = 0; 


public MMGViewSwitcher(Context context, AttributeSet attrs) { 
    super(context,attrs); 

} 

@Override 
public boolean onTouchEvent(MotionEvent event) 
{ 
    String ActionString=""; 
    switch(event.getActionMasked()) 
    { 
     case MotionEvent.ACTION_DOWN: 
      startX = event.getX(); 
      startY = event.getY(); 
      ActionString="ACTION_DOWN"; 
      break; 
     case MotionEvent.ACTION_MOVE: 
      ActionString="ACTION_MOVE"; 
      break; 
     case MotionEvent.EDGE_LEFT: 
     this.showNext(); 
      break; 
     case MotionEvent.EDGE_RIGHT: 
     this.showPrevious(); 
      break; 
     case MotionEvent.ACTION_UP: 
      endX = event.getX(); 
      endY = event.getY(); 
      if((startX > endX) && Math.abs(startX-endX)>30){ 
       this.showNext(); 
      } 
      if((startX < endX) && Math.abs(startX-endX)>30){ 
       this.showPrevious(); 
      } 
      ActionString="ACTION_UP"; 
     break; 
    } 
    return true; 
} 


@Override 
public boolean onInterceptTouchEvent(MotionEvent ev) 
{ 
    onTouchEvent(ev); 
    return false; 
} 

}

+0

任何機構都知道答案? – 2012-02-20 12:44:12

回答

0

第一:要一個多小時耐心之前,你對你自己的問題再次要求一個答案(社區不歡迎)發表評論。

你的問題是你使用兩個相互干擾的監聽器。我不知道您的OnTouchListener翻轉視圖的規則,但您應該用GestureDetectorSimpleGestureListener替換它。在那裏,您可以實施滑動手勢檢測來翻轉視圖。

+0

我創建我自己的視圖擴展viewSwitcher並重寫onTouch事件。該工作是好的,但當我翻轉視圖 - onClickListener一起迴應。結果是同時有翻轉和點擊。它對我來說是錯的。我可以從切換臺禁用兒童的Onclick嗎?但爲什麼? – 2012-02-20 13:19:43

+0

正如我上面說的:使用手勢檢測器,而不是... – WarrenFaith 2012-02-20 13:20:42

+0

sancs非常多 – 2012-02-20 13:47:42