2011-01-31 15 views
33

Estoy usando un GridView para un tablero de juego. Recientemente, algunos usuarios han tenido problemas con el desplazamiento vertical de la pizarra (en teléfonos Samsung Galaxy/Vibrant con 2.2) - Este error no ocurre en mi Nexus One.¿Cómo deshabilitar el desplazamiento de GridView en Android?

Un usuario produjo unos screenshots del problema.

¿Cómo puedo bloquear el GridView en su lugar? ¿Hay alguna manera de deshabilitar el desplazamiento?

Respuesta

87

tratar de añadir o suprimir por setOnTouchListener para GridView, a continuación, en onTouch método que puede utilizar código como este para hacer gridview no desplazamiento:

gridview.setOnTouchListener(new OnTouchListener(){ 

    @Override 
    public boolean onTouch(View v, MotionEvent event) { 
     return event.getAction() == MotionEvent.ACTION_MOVE; 
    } 

}); 
+8

Esta es una solución correcta y debería aceptarse como respuesta a la pregunta. –

+1

+1 @Gracias, funcionó para mí ... –

+1

esto es lo que necesito. Gracias. – jayellos

10

Puede intentar setEnabled (falso), aunque podría tener otros efectos secundarios. GridView en realidad no está destinado a ser utilizado de la manera en que lo está usando. Debe crear su propia vista o diseño personalizado. También puede usar TableLayout.

+0

Sí, me doy cuenta de que debería ser una vista personalizada. Será un poco más complicado reemplazar el GridView actual (error de diseño inicial). Estaba esperando que hubiera una solución rápida :) El método setEnabled() deshabilita todas las funcionalidades. Gracias Romain – pjama

+1

Romain Guy reeally no quiere que uses un GridView sin desplazarte. Yo uso este truco de http://stackoverflow.com/a/4536955/671543. – njzk2

+0

Para futuros lectores, he encontrado un ejemplo en TableLayout: http://stackoverflow.com/a/8639461/3844201 –

Cuestiones relacionadas