Pour les experts : validation de contrainte (HL)

Les contraintes que vous indiquez peuvent devenir invalides. Par exemple, si vous ajoutez une contrainte indiquant que le noeud A doit être sur le côte gauche du noeud B, mais que vous supprimez A du graphe, cette contrainte devient non valide. Elle n'a tout simplement plus aucun sens, même si elle n'est pas en conflit avec d'autres contraintes. L'instance d'agencement supprime automatiquement les contraintes non valides de temps en temps car elles gaspillent de la mémoire. Le contrôle de validation est effectué au cours de l'agencement. Il n'est généralement pas nécessaire de forcer une validation mais si vous souhaitez le faire, appelez :
layout.validateConstraints();
Cette opération supprime tous les contraintes non valides de l'agencement hiérarchique et nettoie la mémoire. La validation de contrainte ne vérifie pas si les contraintes ont des conflits. Le principal effet de la validation est que le système de contrainte utilise ensuite moins de mémoire.
Note
Une contrainte est valide si elle a un sens. Deux contraintes valides sont en conflit si le système ne peut pas les satisfaire toutes les deux en même temps. Les contraintes non valides ne peuvent pas être en conflit car elles n'ont pas de sens.
En fait, la validation de contrainte et la résolution de contraintes constituent des phases différentes. La validation de contrainte effectue un test local rapide. Elle supprime complètement les contraintes non valides de l'instance d'agencement. Elle n'a aucune incidence sur les contraintes en conflit.
La résolution de contraintes vérifie si des contraintes valides sont en conflit entre elles. De fait, la résolution de contraintes est processus complexe dans un réseau de plusieurs contraintes connexes. Elle choisit les contraintes qui peuvent être résolues et celles qui ne le peuvent pas. Cependant, la résolution de contraintes ne supprime pas les contraintes en conflit de l'instance d'agencement, elle fournit une solution qui permet d'ignorer certaines contraintes.