J'ai une vue personnalisée qui est insérée dynamiquement et le onDraw
n'est pas appelé. J'ai d'abord fait la vue personnalisée sans l'insertion dynamique et cela a bien fonctionné, mais quand je l'ai déplacé vers ma base de travail, je ne peux pas obtenir onDraw
pour être appelé, même si le constructeur de vue est appelé et le onMeasure
est également appelé. J'ai essayé de mettre invalidate()
et postInvalidate()
appels autour de l'endroit, mais ils ne semblent pas forcer la vue à dessiner. La hiérarchie des vues est la même pour les deux versions et je suis perdu.Android - onDraw n'étant pas appelé dans une vue personnalisée insérée dynamiquement
Quelqu'un peut-il aider?
EDIT: Un peu plus de tests a montré que onDraw
est appelée sur l'émulateur, mais pas le combiné. Les valeurs onSizeChanged
sur le combiné ont également les valeurs correctes, mais sur l'émulateur, les valeurs sont toutes 0.
EDIT: J'ai joué avec et je n'arrive toujours à rien, alors j'ai mis une prime sur il. Si vous avez besoin de plus de code/xml/info alors s'il vous plaît faites le moi savoir.
Merci pour votre réponse, mais les vues ne s'affichent pas dans la visionneuse de hiérarchie et lorsque requestLayout est remplacé par une instruction de journal, il est certainement appelé. En fait, le test sur l'émulateur - onDraw est maintenant appelé, mais le canevas a des dimensions en plein écran, pas seulement la vue. – Martyn