gyscos Posté(e) 9 mars 2010 Share Posté(e) 9 mars 2010 Bonjour ! J'ai un LinearLayout, qui contient plusieurs Views (des SurfaceView), qui ont toutes la visibilité View.GONE sauf une, qui sera affichée. Si je change dans le code la View initialement visible, aucun problème, je vois la bonne. J'aimerais alors changer la View qui doit être affichée après la création. Pour cela, je met l'ancienne à la visibilité GONE et la nouvelle à la visibilité VISIBLE. La nouvelle View capte alors sans problème l'input, mais ne s'affiche pas... Le contour général du Layout change aussi (si je me contente de mettre l'ancienne vue à GONE sans afficher la nouvelle, j'ai un écran noir à la place de l'ancienne image), mais c'est tout... J'ai vraiment l'impression que tout change bien comme prévu, mais que le LinearLayout ne rafraichit pas son affichage automatiquement... Y a-t'il une fonction à utiliser pour forcer le rafraichissement ? J'ai essayé invalidate, refreshDrawableState, requestLayout sur les enfants, ... je ne sais plus trop quoi faire. D'autant plus que d'autres ont eu ce problème sur internet, sans solution postée... xD Merci infiniment à celui qui trouvera une réponse ! :) PS : J'utilise Android 1.6. Lien vers le commentaire Partager sur d’autres sites More sharing options...
gyscos Posté(e) 9 mars 2010 Auteur Share Posté(e) 9 mars 2010 J'ai fait une application minimale qui montre le problème : http://pastebin.com/J2ieMDDG (Le problème est expliqué en commentaire au début) Lien vers le commentaire Partager sur d’autres sites More sharing options...
gyscos Posté(e) 11 mars 2010 Auteur Share Posté(e) 11 mars 2010 Ahhhh solution trouvée. Apparement, c'est un problème d'Android 1.6 : les SurfaceView ne supprime pas leur surfaces quand on change leur visibilité... Solution carrément fournie par Romain Guy. ^^ Donc solution : mettre à jour Android ou utiliser removeView à la place... Lien vers le commentaire Partager sur d’autres sites More sharing options...
Recommended Posts
Archivé
Ce sujet est désormais archivé et ne peut plus recevoir de nouvelles réponses.