Android ListView con los objetos que se puede hacer clic en él es filas causa problemas de desplazamiento continuo

StackOverflow https://stackoverflow.com/questions/4227424

Pregunta

He estado pesca de arrastre de la Internet en busca de una respuesta durante varias horas, pero me parece que no puede encontrar a alguien que ha sido capaz de resolver esto.

Tengo una vista de lista que utiliza un adaptador personalizado. Una fila es similar al siguiente

text alt

La lista es llenado por una matriz. Todo funciona muy bien.

Ahora, quiero que el ImageView y ToggleButton para reaccionar a los clics, por lo que poner en práctica el OnClickListener en mi adaptador, puse la posición de los elementos en la etiqueta de cada vista, y luego fijó su OnClickListener a esto.

Funciona muy bien, excepto que ahora no puedo utilizar el onListItemClick para el inicio de una actividad para el artículo! OK, digo, acabo de hacer el RelativeLayout sostiene el texto en el medio hay utilice el mismo OnClickListener. Funciona genial. Todo se puede hacer clic, y la vida es buena.

SALVO! Ahora, cuando me desplazarse por la lista, no puedo "continuar" el rollo con sólo arrojar de nuevo. Esto hace que el desplazamiento de la parada, y tengo que lanzar una vez más para ponerlo en marcha de nuevo. Parece que la onclick-manivela hace que la aventura de movimiento que se interpreta como un grifo o algo (que no se activa la lógica dentro onClick).

Yo sé que esto es posible con sólo ir a la lista de teléfonos en mi HTC Hero, que tiene exactamente el tipo de diseño y el comportamiento que quiero de mi aplicación. Esta aplicación aún parece tener el trabajo onItemClickListener.

Entonces, ¿cómo puedo estar seguro de la lista mantiene desplaza, y aún así ser capaz de hacer clic en el togglebutton, listitem y la imageview? He estado atascado en esto todo el día, y me está dando dolor de cabeza: (

¿Fue útil?

Solución

Otra búsqueda rápida antes de ir a casa, y me encontré con esto:

Cómo disparar onListItemClick en ListActivity con botones en la lista?

CodeFusionMobile menciona establecer la propiedad android:descendantFocusability del diseño de lista a "blocksDescendants", y por lo que trató de hacer eso. Todo funciona como se espera ahora. Desplazamiento de trabajos, obras, haciendo clic onListitemClicked las obras ToggleButton, haciendo clic en las obras ImageView.

Sólo para que quede claro ... En el RelativeLayout padres, a la derecha en la parte superior de la row.xml, añadí

android:descendantFocusability="blocksDescendants"
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top