負のマージンのデモ:
シナリオ
別のビューの境界ボックスに侵入するように、ビューの1つに負のマージンを設定してビューを重ねます。
考え
必要に応じて、レイアウトのオーバーラップで期待どおりに機能するようです。しかし、私が無意識のうちに正しく機能していないために、より大きな問題に遭遇したくありません。エミュレーター、物理デバイス、という名前を付けます。負のマージンを使用すると、すべてが正しく機能しているように見えます。あるビューが別のビューの境界ボックスに侵入し、レイアウトでの宣言方法に応じて、他のビューの上または下になります。
API 21以降、translationZ
およびelevation
属性を設定してビューを他のビューの上または下に表示できることも知っていますが、私の懸念は基本的に、属性のドキュメントlayout_margin
でマージン値が正であることを明確に指定されているという事実から来ています。私の引用:
抜粋:
このビューの左側、上部、右側、下部に追加のスペースを指定します。このスペースは、このビューの境界外です。マージン値は正でなければなりません。「14.5sp」などの単位が追加された浮動小数点数であるディメンション値である必要があります。使用可能な単位は次のとおりです:px(ピクセル)、dp(密度非依存ピクセル)、sp(優先フォントサイズに基づいてスケーリングされたピクセル)、in(インチ)、mm(ミリメートル)...
最初にこの質問をして以来、私は負のマージンに関する問題を抱えていませんでしたが、可能な限りそれらを使用しないように努めましたが、問題は発生しなかったため、ドキュメントには、私もそうではありませんそれについて心配しました。