我有以下布局
<ViewSwitcher>
<LinearLayout>
<ListView />
</LinearLayout>
<LinearLayout>
<ListView />
</LinearLayout>
</ViewSwitcher>但是当我切换ViewSwitcher(通过onTouchListener)时,布局中ListView的onItemClickListener也会响应。在切换时我不需要它。如何修复它?
这是我的switcher类:
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;
}}
发布于 2012-02-20 20:56:55
首先:在你对自己的问题发表评论之前,要有超过一个小时的耐心,再次询问答案(在社区中不受欢迎)。
您的问题是您使用了两个相互干扰的侦听器。我不知道你的OnTouchListener在哪条规则上翻转视图,但你应该用一个GestureDetector和一个SimpleGestureListener来代替它。在那里你可以实现一个滑动手势检测来翻转你的视图。
https://stackoverflow.com/questions/9360632
复制相似问题