Любой атрибут с префиксом layout_
является атрибутом LayoutParams
.В то время как большинство атрибутов представления анализируются во время создания представления самим представлением, LayoutParams являются специальными аргументами для родительского представления, которые предоставляют подсказки о том, как родительский объект должен определять размер и положение дочернего представления.То, какие LayoutParams действительны в представлении, полностью зависит от типа родительского представления.
layout_margin
, следовательно, является инструкцией для родительского представления, которое поддерживает поля.Он говорит: «Поместите так много места между мной и другими взглядами или краем родителя».Заполнение - это пространство внутри представления между краями представления и его содержимым.
layout_gravity
- это гравитация для одного дочернего элемента в его родительском элементе.gravity
влияет на содержимое представления, в котором оно появляется.
Выбор используемого вами зависит от результата, которого вы хотите достичь.Если вы хотите, чтобы макет имел фиксированное количество пространства между его краями и всем его содержимым, вам нужно заполнение.Если вы хотите переместить собственные края макета на определенное расстояние, вам нужны поля.Если у вас есть макеты без фона, эти два могут быть визуально эквивалентны.Когда вы начинаете создавать сложные пользовательские интерфейсы, в которых макеты имеют фон из 9 патчей, который визуально группирует содержимое, различия становятся очевидными.