Это плохая практика использовать отрицательные поля в Android?
& # XA0; & # xA0; & # xA0; & # xA0; & # xA0; & # xA0; & # xA0; & # xA0; & # xA0; & # xA0; & # xA0; & # xA0; & # xA0; & # xA0; & # xA0; & # xA0; & # xA0; & # xA0; & # xA0; & # xA0; & # xA0; & # xA0; & # xA0; & # xA0; & # xA0;
The scenarioПерекрывающиеся виды путем установки отрицательного поля для одного из них, чтобы оно охватывало ограничивающую рамку другого вида.
ThoughtsКажется, это работает так, как вы ожидаете, с перекрытием макетов, если они должны. Но я не хочу сталкиваться с более серьезной проблемой из-за того, что по незнанию не делает все правильно. Эмуляторы, физические устройства, вы называете это, когда вы используете отрицательные поля, кажется, что все работает правильно, одно представление пересекает границу другого представления, и в зависимости от того, как оно объявлено в макете, оно будет выше или ниже другого представления.
Я также знаю, что с API 21 мы можем установитьtranslationZ
а такжеelevation
атрибуты для отображения вид выше или ниже других видов, ноmy concern в основном исходит из того, чтов документации дляlayout_margin
атрибуты четко определены, чтоmargin values should be positiveПозвольте мне процитировать:
Excerpt:
Specifies extra space on the left, top, right and bottom sides of this view. This space is outside this view's bounds. Margin values should be positive.
Must be a dimension value, which is a floating point number appended with a unit such as "14.5sp". Available units are: px (pixels), dp (density-independent pixels), sp (scaled pixels based on preferred font size), in (inches), mm (millimeters)...
За годы, прошедшие с тех пор, как я изначально задавал этот вопрос, у меня не было проблем с отрицательной маржой, я старался избегать их максимально возможного использования, но сделалnot возникнут какие-либо проблемы, поэтому, хотя в документации указано, что я не слишком беспокоюсь об этом.