Demo del margine negativo:
Lo scenario
Viste sovrapposte impostando un margine negativo su una di esse in modo che invada il riquadro di delimitazione di un'altra vista.
Pensieri
Sembra funzionare come ti aspetteresti con la sovrapposizione dei layout se dovrebbero. Ma non voglio incorrere in un problema più grande per non aver fatto inconsapevolmente le cose per bene. Emulatori, dispositivi fisici, lo chiami, quando usi i margini negativi tutto sembra funzionare correttamente, una vista invade il riquadro di delimitazione delle viste di un'altra e, a seconda di come è dichiarata nel layout, sarà sopra o sotto l'altra vista.
Sono anche consapevole del fatto che dall'API 21 possiamo impostare gli attributi translationZ
e elevation
per far apparire la vista sopra o sotto altre viste, ma la mia preoccupazione deriva fondamentalmente dal fatto che nella documentazione per gli layout_margin
attributi è chiaramente specificato che i valori di margine dovrebbero essere positivi , lascia mi cito:
Estratto:
specifica lo spazio aggiuntivo sui lati sinistro, superiore, destro e inferiore di questa vista. Questo spazio è al di fuori dei limiti di questa vista. I valori del margine dovrebbero essere positivi . Deve essere un valore di dimensione, che è un numero in virgola mobile aggiunto a un'unità come "14,5 sp". Le unità disponibili sono: px (pixel), dp (pixel indipendenti dalla densità), sp (pixel scalati in base alla dimensione del carattere preferita), in (pollici), mm (millimetri) ...
Negli anni trascorsi da quando ho inizialmente posto questa domanda non ho avuto problemi con i margini negativi, ho cercato di evitare di usarli il più possibile, ma non ho riscontrato alcun problema, quindi anche se la documentazione afferma che, non lo sono troppo preoccupato per questo.