Las restricciones que especifique pueden dejar de ser
válidas. Por ejemplo, si se añade la restricción de que el nodo
A
debe estar a la izquierda
del nodo B
, pero el nodo
A
se elimina del gráfico, esta
restricción ya no es válida. Simplemente ya no tiene sentido, aunque
no entre en conflicto con otras restricciones. La instancia de diseño
automáticamente elimina las restricciones que no son válidas de vez
en cuando porque son un desperdicio de memoria. La comprobación de
validación se hace durante la ejecución del diseño.
Normalmente no es necesario forzar una comprobación de validación,
pero si desea hacerlo, llame a: layout.validateConstraints();
Esto elimina todas las restricciones que no son válidas
del Diseño jerárquico y borra la memoria. La validación de
restricciones no comprueba las restricciones que tienen conflictos.
El principal efecto de la validación es que, después de realizarla,
el sistema de restricciones utiliza menos memoria.
Nota
Una restricción es válida si tiene sentido. Dos
restricciones entran en conflicto válido si el sistema no puede
satisfacerlas a la vez. Las restricciones que no son válidas no
pueden entrar en conflicto porque no tienen sentido.
De ahí que la validación de restricciones y la
resolución de restricciones sean fases distintas. La validación de
restricciones realiza una prueba local rápida. Elimina completamente
de la instancia de diseño las restricciones que no son válidas.
No afecta a las restricciones que entran en conflicto.
La resolución de restricciones comprueba si un conjunto
de restricciones válidas entran en conflicto entre sí. De este modo,
la resolución de restricciones es un proceso complejo en una red de
varias restricciones relacionadas. La resolución de restricciones
decide qué restricciones se pueden resolver y cuáles no. Pero la
resolución de restricciones no elimina las restricciones que entran
en conflicto de la instancia de diseño, sino que ofrece una solución
que puede pasar por alto algunas restricciones.