0

主な活動がTabActivity. ユーザーがフリング ジェスチャでタブ間を移動できるようにすることを検討していましたが、4 つのタブのうち 1 つのフリングしか検出できないことがわかりました。

public class WSGesture extends TabActivity implements OnGestureListener {

    private GestureDetector gestureScanner;

    @Override onCreate(Bundle savedInstanceState)
    {

    gestureScanner = new GestureDetector(this);  
    ...  
    }   

    .  
    .  
    .  
    @Override  
    public boolean onFling(MotionEvent e1, MotionEvent e2, float velocityX,  
        float velocityY) {  
        Log.v(TAG, "onFling called, velX: " + velocityX + ", velY: " + velocityY);  

        return true;  
    }

    public boolean onTouchEvent(MotionEvent me)
    {   
        return gestureScanner.onTouchEvent(me);
    }
}

このコードを実行するonFlingと、特定のタブが現在のタブとして設定されている場合にのみ呼び出されます。他の 3 つについては、何も得られません。それが重要な場合、それは常に4つのうち3番目です。

4

1 に答える 1

0

過去に私にとってうまくいったことの1つは、onDown()を実装してtrueを返すことです...

ただし、これを行うときは注意してください... onGestureListener を使用してシングルクリックなどの他のことを処理する場合、Android の 1.x バージョンと 2.x バージョンの間でこれを行うときの動作が異なることがわかりました...このような変更を行うときは、アプリを徹底的にテストしてください。

onFling のみを使用している場合は、問題ないはずですが、安全のためにテストしてください。

于 2011-03-02T05:50:26.957 に答える