Demo ujemnej marży:
Scenariusz
Nakładające się widoki poprzez ustawienie ujemnego marginesu dla jednego z nich, tak aby naruszał obwiednię innego widoku.
Myśli
Wydaje się, że działa tak, jak można się spodziewać, z nakładaniem się układów, jeśli powinny. Ale nie chcę napotkać większego problemu, ponieważ nieświadomie nie robię rzeczy dobrze. Emulatory, fizyczne urządzenia, jak to nazywasz, kiedy używasz ujemnych marginesów, wszystko wydaje się działać poprawnie, jeden widok narusza obwiednię innych widoków iw zależności od tego, jak jest zadeklarowany w układzie, będzie powyżej lub poniżej drugiego widoku.
Jestem też świadomy, że od API 21 możemy ustawić translationZ
i elevation
atrybuty, aby widok pojawia się powyżej lub poniżej innych poglądów, ale moja sprawa zasadniczo wynika z faktu, że w dokumentacji dla layout_margin
atrybutów to wyraźnie określić, że wartości marginesów powinna być dodatnia , niech cytuję:
Fragment:
określa dodatkową przestrzeń po lewej, górnej, prawej i dolnej stronie tego widoku. Ta przestrzeń jest poza granicami tego widoku. Wartości marginesów powinny być dodatnie . Musi to być wartość wymiaru, która jest liczbą zmiennoprzecinkową z dołączoną jednostką, np. „14,5sp”. Dostępne jednostki to: px (piksele), dp (piksele niezależne od gęstości), sp (piksele skalowane w oparciu o preferowany rozmiar czcionki), w (cale), mm (milimetry) ...
Przez lata, odkąd zadałem to pytanie, nie miałem żadnych problemów z ujemnymi marżami, starałem się unikać ich używania w jak największym stopniu, ale nie napotkałem żadnych problemów, więc mimo że dokumentacja mówi, że nie jestem zbyt martwiłem się o to.