6

AndroidScrollViewを拡張するカスタムビューがあります。直接の子は、クリック可能な子を持つ相対的なレイアウトです。次のことができるようになりたい:

  1. スクロールビューでonScaleジェスチャを検出します(アイテムのスケールを手動で管理するよりも)。
  2. ScrollViewを垂直方向にスクロールします。
  3. それらの子アイテムはクリック可能にしてください。

私がこれまでに試したことは(擬似コード)です:

public class CustomView extends ScrollView { 
    @Override
    public boolean onInterceptTouchEvent(MotionEvent ev) {  
        return super.onInterceptTouchEvent(ev) || mScaleDetector.onTouchEvent(ev);
    }

   @Override
   public boolean onTouchEvent(MotionEvent ev) {
       return mScaleDetector.onTouchEvent(ev);
   }

    private class ScaleListener extends
        ScaleGestureDetector.SimpleOnScaleGestureListener {

            @Override
            public boolean onScale(ScaleGestureDetector detector) {
                // Handle the scale..
                return true;
            }
       }
}

また、最初にsuperを呼び出し、mScaleDetector.onTouchEventを返すなど、onInterceptMethodのさまざまな構成を試しました。

スケールまたはクリックアンドスクロールをインターセプトすることに成功しましたが、両方をインターセプトすることはできませんでした。

ありがとう、ダニエル

4

1 に答える 1

9

解決策は次を使用することです。

     @Override
    public boolean dispatchTouchEvent(MotionEvent ev){
        super.dispatchTouchEvent(ev);    
        return mScaleDetector.onTouchEvent(ev); 
    }

onInterceptTouchEventonTouchEventメソッドをオーバーライドしません 。

于 2013-01-01T09:46:01.797 に答える