Android - onDraw no ser llamado en vista personalizada insertado dinámicamente
-
08-10-2019 - |
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.
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.
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í .