2011-02-17 4 views
8

Android에서 구성 요소를 올바르게 배치하는 방법을 배우고 있습니다. 나는 노련한 CSS/MXML 개발자이며 Android 구성 요소의 레이아웃 속성을 완전히 이해하는 데 가장 힘든 시간을 보내고 있습니다.Android 레이아웃 속성에 대한 고급 설명?

  • layout_margin layout_gravity
  • 패딩 대 중력 대 ignoreGravity 대

당신이 다른 통해 하나를 사용해야 :

한 가지 내가 이러한 차이 모르겠어요입니다 선형, 테이블 또는 관련 레이아웃? 제가 배우고 싶은 무언가의 예는 화면의 상단/중간/하단과 관련된 별도의 구성 요소가있는 레이아웃에 전반적인 여백을 갖는 것입니다. sdk 문서는 좋은 시작이지만 상황이 다른 상황에서 어떻게 작동하는지 보여주지는 않습니다.

좀 더 복잡하고 포괄적 인 레이아웃 디자인을 배우려면 어디에서 조언을 구합니까?

답변

10

접두사가 layout_ 인 모든 속성은 LayoutParams 속성입니다. 대부분의 뷰 속성은 뷰 자체에서 뷰를 생성하는 동안 구문 분석되지만 LayoutParams는 부모 뷰에 대한 특수한 인수로, 부모가 자식 뷰의 크기를 지정하고 배치하는 방법에 대한 힌트를 제공합니다. 뷰에서 유효한 LayoutParams는 전적으로 상위 뷰의 유형에 따라 다릅니다.

layout_margin은 여백을 지원하는 부모보기에 대한 명령입니다. 그것은 "나와 다른 견해 사이 또는 부모의 가장자리 사이에이 정도의 공간을 두십시오."라고 말합니다. 여백은 사이의보기 안의 공간이며보기의 가장자리와 내용입니다.

layout_gravity은 부모 내의 단일 하위에 대한 중력입니다. gravity은 표시되는보기의 내용에 영향을줍니다.

사용하려는 결과는 달성하려는 결과에 따라 다릅니다. 레이아웃의 모서리와 모든 내용 사이에 일정한 공간을두고 싶으면 패딩을 원할 것입니다. 레이아웃의 자체 가장자리를 일정 거리만큼 이동하려면 여백이 필요합니다. 배경이 설정되지 않은 레이아웃이있는 경우이 두 가지가 시각적으로 동일 할 수 있습니다. 레이아웃에 내용이 시각적으로 그룹화 된 9 개의 패치 배경이있는 복잡한 UI를 만들 때 차이가 분명 해집니다.

-1

enter image description here

난 당신이 패딩과 마진의 차이를 볼 수 있기를 바랍니다. 안쪽 여백은 안쪽 여백이며 여백은 안쪽 여백입니다.