ViewSwitcher и ListView - PullRequest
       30

ViewSwitcher и ListView

0 голосов
/ 20 февраля 2012

У меня следующий макет

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

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

Но когда я переключаю ViewSwitcher (с помощью onTouchListener), onItemClickListener ListView в моем макете также отвечает.Мне это не нужно при переключении.Как это исправить?

Это мой класс переключателя:

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;
}

}

1 Ответ

0 голосов
/ 20 февраля 2012

Во-первых: будьте терпеливее, чем за час до того, как прокомментировать свой вопрос и снова попросите ответить (не приветствуется в сообществе).

Ваша проблема в том, что вы используете двух слушателей, которые мешают друг другу.Я не знаю, по какому правилу ваш OnTouchListener меняет представление, но вы должны заменить его на GestureDetector и SimpleGestureListener.Там вы можете реализовать распознавание жестов, чтобы перевернуть ваш взгляд.

...