Демо отрицательного поля:
Сценарий
Перекрытие представлений путем установки отрицательного поля на один из них, чтобы он вторгался в ограничительную рамку другого представления.
Мысли
Кажется, он работает так, как вы ожидаете, с перекрытием макетов, если это необходимо. Но я не хочу сталкиваться с более серьезной проблемой, потому что не знаю, что делать. Эмуляторы, физические устройства, вы называете это, когда вы используете отрицательные поля, все, кажется, работает правильно, один вид вторгается в другой ограничивающий прямоугольник представлений и в зависимости от того, как он объявлен в макете, он будет выше или ниже другого представления.
Я также знаю, что с API 21 мы можем установить translationZ
и elevation
, чтобы сделать представление выше или ниже других видов, но моя проблема в основном исходит из того, что в документации для атрибутов layout_margin
четко указано, что значения маржи должны быть положительными, позвольте мне сказать:
Выдержки:
Задает дополнительное пространство на левой, верхней, правой и нижней сторонах этого представления. Это пространство находится за пределами этой точки зрения. Значения маржи должны быть положительными. Должно быть значение измерения, которое является числом с плавающей запятой, добавленным с помощью блока, такого как" 14.5sp". Доступными единицами являются: px (пиксели), dp (не зависящие от плотности пиксели), sp (масштабированные пиксели на основе предпочтительного размера шрифта), в дюймах, мм (миллиметры)...
В те годы, когда я задавал этот вопрос, у меня не было никаких проблем с отрицательной маржой, старался избегать их использования как можно больше, но не сталкивался с какими-либо проблемами, поэтому даже если в документации указано, что я не слишком беспокоюсь об этом.