Расширенное объяснение свойств макета Android? - PullRequest
8 голосов
/ 18 февраля 2011

Я в поиске, как правильно расположить компоненты в Android.Я опытный разработчик CSS / MXML, и мне тяжело получить полное представление о свойствах макета в компонентах Android.

Во-первых, я не уверен, что различия между ними:

  • layout_margin vs. padding
  • layout_gravity vs. gravity vs. ignoreGravity

Следует ли использовать один поверх другого с линейными, табличными или относительными макетами?Примером того, что я хотел бы изучить, является наличие общего поля в макете с отдельными компонентами, относящимися к верхней / средней / нижней части экрана.Документы SDK - хорошее начало, но они не показывают, как все работает в разных ситуациях.

Какие-либо советы о том, куда обратиться, чтобы изучить более сложный / всеобъемлющий дизайн макета?

Ответы [ 2 ]

10 голосов
/ 18 февраля 2011

Любой атрибут с префиксом layout_ является атрибутом LayoutParams.В то время как большинство атрибутов представления анализируются во время создания представления самим представлением, LayoutParams являются специальными аргументами для родительского представления, которые предоставляют подсказки о том, как родительский объект должен определять размер и положение дочернего представления.То, какие LayoutParams действительны в представлении, полностью зависит от типа родительского представления.

layout_margin, следовательно, является инструкцией для родительского представления, которое поддерживает поля.Он говорит: «Поместите так много места между мной и другими взглядами или краем родителя».Заполнение - это пространство внутри представления между краями представления и его содержимым.

layout_gravity - это гравитация для одного дочернего элемента в его родительском элементе.gravity влияет на содержимое представления, в котором оно появляется.

Выбор используемого вами зависит от результата, которого вы хотите достичь.Если вы хотите, чтобы макет имел фиксированное количество пространства между его краями и всем его содержимым, вам нужно заполнение.Если вы хотите переместить собственные края макета на определенное расстояние, вам нужны поля.Если у вас есть макеты без фона, эти два могут быть визуально эквивалентны.Когда вы начинаете создавать сложные пользовательские интерфейсы, в которых макеты имеют фон из 9 патчей, который визуально группирует содержимое, различия становятся очевидными.

0 голосов
/ 13 апреля 2017

enter image description here

Надеюсь, вы увидите разницу между отступом и полем.Заполнение находится внутри интервала, в то время как поле находится вне интервала.

...