Ma mise en page ne positionne parfois pas les éléments correctement. J'ai essayé beaucoup de solutions, mais un travail unique est pivoté de portrait au paysage, puis de retour du paysage au portrait. Ensuite, la mise en page est redressée automatiquement et convient parfaitement. Je définit l'orientation | clavier afin que le contenu n'est pas rechargé, seulement redessiné. Comment redessiner la programmation de contenu comme paysage-portrait? Merci.
Edit: J'ai essayé de suivre et n'a aucun effet p>
getWindow().getDecorView().findViewById(android.R.id.content).invalidate(); getWindow().getDecorView().findViewById(android.R.id.content).requestLayout();
4 Réponses :
Avez-vous essayé de Invalidate ( ) code>
the Vue root ?
findViewById(android.R.id.content).invalidate();
Cela causerait-il setContentView () code> à appeler?
Dans Kotlin, j'ai appelé la mise en page directement par ID I.E. llhint.invalidate () code> mais ça ne fonctionne pas Je veux dire pas de mise en page entièrement complète qui contient textview, editext etc.
Lorsque l'orientation de l'écran change, Android recrée l'activité actuelle. P>
essayer appelant Mesure (int, int ) ou demandeLAYOUT () . Sinon, il n'y a aucune chance de relancer par programmation des vues. P>
Call DemandeLayout () uniquement et Lire Voir Description de la classe pour plus d'informations. P>
Si cela est dangereux ou mauvais pratique, veuillez me corriger. J'ai essayé toutes ces méthodes aussi et hors du désespoir a décidé d'essayer d'appeler mon oncreate à nouveau et cela a fonctionné. Donc, pour l'instant, j'utiliserai oncreate (null) code> pour actualiser ma vue lorsque je mettez à jour les données. Encore une fois, s'il vous plaît laissez-moi savoir si cela est dangereux ou une mauvaise pratique et si possible une alternative de travail. p>
Qu'est-ce que "parfois" signifie? Y a-t-il un moyen reproductible pour obtenir l'erreur? Avez-vous essayé demandeLayout de forcer à redessiner la mise en page? Pouvez-vous mettre un exemple de code pour montrer quel genre de vues utilisez-vous?
Vous pouvez essayer d'appeler
invalidate () code> pour forcer une vue à redessiner.