这是布局 -
<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/