7
votes

Forcer la mise en page à rafraîchir / repeindre Android?

Je veux changer la position de la mise en page et après 75 ms le renvoyer à la première position pour faire un mouvement et c'est mon code: xxx p> Le problème est que l'application est l'arrêt pour 750ms et Don 't faire n'importe quoi. J'ai essayé invalider () , rebranchisserie () , demandelayout () , postinvalidate () , et essayez d'appeler Onresume () , OnRestart () , Onpaause () .


0 commentaires

4 Réponses :


22
votes

Peut-être avez-vous besoin de: xxx

après avoir apporté la mise en page change.

EDIT:

Exécutez le code Sur un fil différent: xxx

et chaque fois que vous devez mettre à jour l'interface utilisateur à partir de cette utilisation du thread: xxx


3 commentaires

Où se passe ce code? Si vous exécutez ce code sur le thread d'interface utilisateur, vous aurez l'application arrêtée et éventuellement rien. Veuillez être plus spécifique avec vos questions et ne modifiez pas la question sans le marquer avec "EDIT:"


Merci pour votre réponse rapide, et je suis désolé parce que je nouveau ici, et à propos du code est de travail mais ne montrez pas le résultat, toute la mise en page est en même temps après 750ms, et je n'utilise pas thnks thnks.


Ensuite, vous devez avoir ceci en cours d'exécution dans un fil séparé et utilisez RunonUthRead () chaque fois que vous devez mettre à jour l'interface utilisateur.



-1
votes
ActivityName.this.runOnUiThread(new Runnable() {
    @Override
    public void run() {
        <code to change UI>
    }
});

1 commentaires

Je ne comprends pas comment cela répond à la question. Pourriez-vous expliquer comment cela répond à la question?



0
votes

Vous devez essayer d'utiliser un Valitoyemator (ou un animateur d'objet), le code ci-dessous est en kotlin mais la même logique serait appliquée pour Java: xxx

essentiellement, vous créez un tas d'animateurs qui ont Démarrez le retard proportionné au nombre d'enfants, donc dès qu'une animation se termine, le nouveau démarre


0 commentaires

2
votes

Après plusieurs heures de test, j'ai trouvé la solution sur la mise à jour d'une vue si vous avez effectué une opération avec ces vues comme Ajout d'enfants, de visibilité, de rotation, etc.

Nous devons forcer à mettre à jour la vue avec les méthodes ci-dessous. < / p> xxx


0 commentaires