2011-07-20 37 views
6

Tengo un ArrayAdapter personalizado para un ListView que está dentro de un scrollView horizontal. El desplazamiento horizontal funciona bien, pero para el desplazamiento vertical tuve que hacer algunos hacks. Solo quiero saber si es una buena idea ya que listView ya está optimizado para el desplazamiento vertical. ¿Hay alguna forma de desplazarse sin este truco?Desplazamiento vertical de Android para ListView dentro Desplazamiento horizontalView

El truco básicamente es capturar touchEvent para scrollView (clase padre) y propagar el evento touch a ListView.

scrolLView.setOnTouchListener(new OnTouchListener(){ 

     @Override 
    public boolean onTouch(View arg0, MotionEvent arg1) { 
      lv.setSmoothScrollbarEnabled(true); 
      lv.dispatchTouchEvent(arg1); 
     } 
}); 

Esto provoca el desplazamiento y las cosas funcionan. Solo quiero saber si hay ciertas cosas más que debo tener en cuenta.

Gracias

Respuesta

3

Su visión horizontal de desplazamiento es en la clase padre, por lo que el evento de toque serán reconocidos sólo por la vista de desplazamiento y no para la vista de lista. Entonces, si desea que la vista de lista se desplace, la forma en que lo hizo es correcta.

+0

El único problema que veo con esto es que si quiero desplazarme diagonalmente no sucede ........ Cualquier truco para eso ..... No entiendo el evento táctil ... – hamish

1

Además de su código, lo he modificado para que solo haya un ScrollView y varios elementos de ImageView dentro.

+0

hola no me ayudó. por favor, shuggest si conoce algún otro procedimiento. – Raj

Cuestiones relacionadas