1

私はAndroidアプリケーションを持っています。私には4つの画面があり、各画面にはリストビューが含まれています。私の要件は、ユーザーが水平方向にフリップするとUI画面が変更され、ユーザーが垂直方向にフリップするとリストをスクロールする必要があることです。私のコードは

public boolean dispatchTouchEvent(MotionEvent event)
 {
     System.out.println("22");
       int eventaction=event.getAction();

         switch(eventaction) 
        {
          case (MotionEvent.ACTION_MOVE):
              System.out.println("move");
          a=1;
          break;

              case MotionEvent.ACTION_UP:
                  System.out.println("up");
              if(a==1)
              {
                  view1.setAnimation(AnimationUtils.loadAnimation(this, R.anim.slide_left));
                  view1.showNext();
              }
              a=0;
                  break;

          default:
          break;
        }

        return super.dispatchTouchEvent(event);
}
4

1 に答える 1

1

子供たちがすべてのスクロールイベントを食べ尽くしていたという同様の問題がありました。結局onInterceptTouchEvent、親を上書きして、それが水平スワイプか垂直スワイプかを検出し、それに応じて動作しました。あなたはこのようなものが欲しいでしょう

@Override
public boolean onInterceptTouchEvent (MotionEvent ev){
    if(horizontalSwipe(ev)){
        return true;
    }
    else
        return false;

}

ここで、新しいモーションイベントが水平モーションイベントを構成するかどうかを履歴から決定する関数があります。

于 2012-06-17T13:01:16.993 に答える