我想禁用滚动视图的拖动手势,它似乎不起作用..我认为这就像创建一个扩展scrollview和Overriding
onFling
的基本类一样简单} 方法。但eclipse给我一个错误,删除@Override:
任何想法如何禁用fling
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;
}
}
答案 0 :(得分:16)
我用Override fling方法解决了同样的问题。如果你在ScrollViewNoFling类上覆盖fling方法而不是在这个方法上调用super.fling,那么你将没有处理滚动的scrollView。
@Override
public void fling (int velocityY)
{
/*Scroll view is no longer gonna handle scroll velocity.
* super.fling(velocityY);
*/
}
答案 1 :(得分:0)
我认为它应该是投掷而不是发动机。 请参阅官方documentation
答案 2 :(得分:0)
除了使用fling()
代替onFling()
外,您还需要注意返回值。
根据onFling()的文档:
退货
如果事件被消耗,则为true,否则为false
如果您想捕捉事件并且什么也不做,请返回true。否则,事件将被传递给其他方法/类以尝试处理它。