6

スクロールビューのフリングジェスチャを無効にしたいのですが、機能していないようです。スクロールビューと@メソッドを拡張する基本クラスを作成するのと同じくらい簡単だと思いましOverridingonFling。しかし、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;
    }

}
4

3 に答える 3

17

オーバーライドフリングメソッドで同じ問題を解決しました。ScrollViewNoFlingクラスでflingメソッドをオーバーライドし、このメソッドでsuper.flingを呼び出さない場合、scrollViewはflingで処理されません。

@Override
public void fling (int velocityY)
{
    /*Scroll view is no longer gonna handle scroll velocity.
     * super.fling(velocityY);
    */
}
于 2012-10-10T11:20:51.013 に答える
0

私はそれがonFlingではなくflingであるべきだと思います。公式ドキュメントを参照してください

于 2012-08-29T14:27:15.023 に答える
0

fling()の代わりに使用することに加えてonFling()、戻り値に注意を払う必要があります。

onFling()のドキュメントによると:

戻り値

イベントが消費された場合はtrue、それ以外の場合はfalse

イベントをキャッチして何もしない場合は、trueを返します。それ以外の場合、イベントは他のメソッド/クラスに渡され、処理が試行されます。

于 2012-08-29T14:33:45.993 に答える