我想禁用滚动视图的翻转手势,但它似乎不起作用。我认为这和创建一个扩展scrollview和@Overriding onFling方法的基本类一样简单。但是eclipse给了我一个删除@Override的错误:
有没有什么办法来禁止放浪?
public class ScrollViewNoFling extends ScrollView {
/**
* @param context
* @param attrs
* @param defStyle
*/
public ScrollViewNoFling(Context context) {
super(context);
// TODO Auto-generated constructor stub
}
public ScrollViewNoFling(Context context, AttributeSet attrs) {
super(context, attrs);
// TODO Auto-generated constructor stub
}
public ScrollViewNoFling(Context context, AttributeSet attrs, int defStyle) {
super(context, attrs, defStyle);
// TODO Auto-generated constructor stub
}
@Override
public boolean onFling(MotionEvent e1, MotionEvent e2, float velocityX, float velocityY)
{
return false;
}
}发布于 2012-10-10 19:20:51
我用Override fling方法解决了同样的问题。如果你在你的ScrollViewNoFling类上覆盖了fling方法,并且没有在这个方法上调用super.fling,那么你就会有一个未被fling处理的scrollView。
@Override
public void fling (int velocityY)
{
/*Scroll view is no longer gonna handle scroll velocity.
* super.fling(velocityY);
*/
}发布于 2012-08-29 22:27:15
我认为应该是fling而不是onFling。请参考官方documentation
发布于 2012-08-29 22:33:46
除了使用fling()而不是onFling()之外,还需要注意返回值。
根据onFling()的文档
返回
如果事件被使用,则为true,否则为false
如果您想捕获事件而不执行任何操作,则返回true。否则,该事件将被传递到其他方法/类以尝试处理它。
https://stackoverflow.com/questions/12180200
复制相似问题