android - ScrollView 和 OnGestureListener

标签 android scrollview onfling

这是布局 -

 <ScrollView>

<RelativeLayout>

    <Layout1>
    </Layout1>

    <Layout2>
    </Layout2>

    <Layout3>
    </Layout3>

    <Layout4>
    </Layout4>

    <Layout5>
    </Layout5>

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

我在 Activity 中实现了 onGestureListener
我必须检测滑动操作 - 在各个布局(布局 1 到布局 6)上向上滑动和向下滑动。由于布局位于 scrollview 中,因此未检测到滑动操作 (OnFling)。
如何检测 ScrollView 的子元素的onFling
任何帮助将不胜感激。

编辑:添加一些代码 -

这是 Activity -

  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。 谷歌更多。我不确定。

关于android - ScrollView 和 OnGestureListener,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14934747/

相关文章:

java - 安卓系统Webview

android - 如何从光标中选择指定的行?

安卓闹钟不兼容?

windows-phone-7 - wp7 滚动查看器列表框不工作

Java:突破游戏,滑动时移动玩家?

android SimpleOnGestureListener 只触发onscroll事件

android - 无需身份验证即可获取 Twitter 主页时间线(仅应用程序身份验证)

android - 将事件从 ScrollView 传播到它在 Android 中的容器

java - 即使不需要 ScrollView,如何使 Activity 可滚动?

android - ListView中的OnFling,获取滑动的Item信息