2012-08-29 14 views
5

Quiero deshabilitar el gesto fling de una vista de desplazamiento y no parece estar funcionando ... Pensé que sería tan fácil como crear una clase básica que extienda scrollview y @Overriding el onFling método. pero Eclipse es que me da un error al eliminar el @ Override:cómo desactivar fling de un scrollView

alguna idea de cómo desactivar la aventura

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; 
    } 

} 

Respuesta

12

He resuelto el mismo problema con el método Override fling. Si reemplaza el método fling en su clase ScrollViewNoFling y no llama a super.fling en este método, no tendrá fling-handled scrollView.

@Override 
public void fling (int velocityY) 
{ 
    /*Scroll view is no longer gonna handle scroll velocity. 
    * super.fling(velocityY); 
    */ 
} 
0

Creo que debe ser aventura y no onFling. Por favor refiérase a la oficial documentation

+1

en cuenta también que 'onFling()' es una parte de [GestureDetector.OnGestureListener] (http://developer.android.com/reference/android/view/GestureDetector.OnGestureListener.html). Es un método válido, simplemente no en este caso. –

0

Además de utilizar fling() en lugar de onFling(), es necesario prestar atención a sus valores de retorno.

De acuerdo con la documentación para onFling():

devoluciones

cierto si el evento se consume, y false en

Si se desea capturar el evento y no hacer nada, regresar verdadero. De lo contrario, el evento pasará a algún otro método/clase para tratar de manejarlo.

Cuestiones relacionadas