这是布局-


 <ScrollView>

<RelativeLayout>

    <Layout1>
    </Layout1>

    <Layout2>
    </Layout2>

    <Layout3>
    </Layout3>

    <Layout4>
    </Layout4>

    <Layout5>
    </Layout5>

    <Layout6>
    </Layout6>
</RelativeLayout>
</ScrollView>


我已经在Activity中实现了onGestureListener。我必须检测滑动动作-在各个布局(布局1到布局6)上向上滑动和向下滑动。由于布局位于滚动视图中,因此未检测到滑动动作(OnFling)。如何为滚动视图的子元素检测onFling?我们将不胜感激。

编辑:添加一些代码-


这是活动-


  public class ServiceScreen extends Activity implements OnFocusChangeListener,
    OnTouchListener, OnGestureListener ....


布局和监听器-

RelativeLayout rlCarBrand;
    ....

    rlCarBrand.setOnTouchListener(new View.OnTouchListener() {

        @Override
        public boolean onTouch(View v, MotionEvent event) {
            // TODO Auto-generated method stub
            return gestureScanner.onTouchEvent(event);
        }
    });


覆盖方法-

@Override
public boolean onFling(MotionEvent arg0, MotionEvent arg1, float arg2,
        float arg3) {
    // TODO Auto-generated method stub
    Log.i("LogMessage", "On Fling");
    return true;
}


@Override
public boolean onDown(MotionEvent arg0) {
    // TODO Auto-generated method stub
    return true;
}

最佳答案

尝试扩展ScrollView类,并覆盖这些onDown和onFling。
像这样的东西

@Override
public boolean onFling(MotionEvent arg0, MotionEvent arg1, float arg2,
    float arg3) {
    super.onFling(arg0,arg1,arg2,arg3);
    return false;
}


看看是否可行。

重点是从使用手势事件的scrollview方法返回false。
谷歌更多。我不确定。

10-08 03:45