Pregunta

Tengo una vista personalizada que se inserta de forma dinámica y la onDraw no está siendo llamado. Al principio me hice la vista personalizada sin la inserción dinámica y funcionó bien, sin embargo cuando se mueve a mi base de código de trabajo, no puedo conseguir onDraw a ser llamado nunca, a pesar de que la vista se llama el constructor y el onMeasure también se llama. He intentado poner invalidate() y postInvalidate() llamadas por el lugar, pero no parece que forzar la vista para dibujar. La jerarquía de la vista tiene el mismo aspecto, tanto para la versión y estoy perdido.

ayuda a nadie

Can?

EDIT: un poco más pruebas han demostrado que onDraw está recibiendo llamadas en el emulador, pero no el auricular. También onSizeChanged en el teléfono tiene los valores correctos que vienen a través, pero en el emulador los valores son todos 0.

EDIT: He estado jugando con él acerca y todavía no puede llegar a ninguna parte, por lo que han ofrecido una recompensa en él. Si necesita más código / xml / información, por favor hágamelo saber.

¿Fue útil?

Solución 2

Me cambió el View a un TextView y parece que funciona ahora, aunque estoy un poco confundido en cuanto a ¿Por qué el View no funcionó.

Otros consejos

Esto se parece mucho a un problema que tuve hace poco, con mi primera vista personalizada. ¿Se dio cuenta si, al cargar la vista de jerarquía, sus vistas personalizadas aparecen? y en cualquier caso hacen que aparezcan presentado en la vista previa de alambre o no?

Si éste es el caso, es requestLayout() que no se consiga llamar (llamadas de carga de vistas de jerarquía que en cada punto de vista - que es por eso que tiene vistas muestran). También he encontrado que un error similar se informó que ya aquí .

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top