Demostración de margen negativo:
El escenario
Superposición de vistas estableciendo un margen negativo en una de ellas para que invada el cuadro delimitador de otra vista.
Pensamientos
Parece funcionar de la manera que cabría esperar con la superposición de los diseños si deberían hacerlo. Pero no quiero encontrarme con un problema mayor por no hacer las cosas bien sin saberlo. Emuladores, dispositivos físicos, lo que sea, cuando usa márgenes negativos todo parece funcionar correctamente, una vista invade el cuadro delimitador de vistas de otra y, dependiendo de cómo se declare en el diseño, estará por encima o por debajo de la otra vista.
También soy consciente de que desde API 21 podemos configurar los atributos translationZ
y elevation
para que la vista aparezca por encima o por debajo de otras vistas, pero mi preocupación proviene básicamente del hecho de que en la documentación de los layout_margin
atributos se especifica claramente que los valores de margen deben ser positivos , dejemos yo cito:
Extracto:
especifica espacio adicional en los lados izquierdo, superior, derecho e inferior de esta vista. Este espacio está fuera de los límites de esta vista. Los valores de los márgenes deben ser positivos . Debe ser un valor de dimensión, que es un número de punto flotante agregado con una unidad como "14.5sp". Las unidades disponibles son: px (píxeles), dp (píxeles independientes de la densidad), sp (píxeles escalados según el tamaño de fuente preferido), en (pulgadas), mm (milímetros) ...
En los años transcurridos desde que hice esta pregunta originalmente, no he tenido ningún problema con los márgenes negativos, traté de evitar usarlos tanto como fue posible, pero no encontré ningún problema, por lo que, aunque la documentación dice que, no estoy demasiado preocupado por eso.