본문 바로가기
Study Note/Android

Android # LinearLayout 선형 레이아웃

by 시뮝 2020. 5. 6.
728x90

Layout 레이아웃 이란?

 Android에서 화면을 구성할 때 View가 배치 되는 모양을 결정하는 것을 Layout 이라고 부릅니다. Layout의 종류는 LinearLayout, RelativeLayout 등이 있으며, android:orientation 특성을 통하여 지정할 수 있습니다. Android Guide에 따르면 성능과 툴링 지원을 개선하기 위해 ConstraintLayout으로 레이아웃을 빌드하는 방법을 권하고 있습니다.

 

LinearLayout 선형 레이아웃

LinearLayout은 세로 또는 가로의 단일 방향으로 모든 하위 요소를 정렬하는 View Group입니다.

(vertical : 위에서 아래로 배치 / horizontal : 왼쪽에서 오른쪽으로 배치)

 

LinearLayout 에 button을 추가 하면 위에서 아래로 배치됩니다. width가 100%로 채워지는 이유는 button의 layout_width가 match_parent로 세팅 되어 부모 width 기준 100%로 채워졌기 때문입니다.

(match_parent : 부모 width / wrap_content : 객체 width)

button의 layout_width를 wrap_content로 바꾸면 해당 button 크기로 배치됩니다. width가 절반 이하임에도 세로로 배치된 이유는 LinearLayout의 android:orientation 속성이 vertical 로 설정되었기 때문입니다.

LinearLayout의 android:orientation을 horizontal로 바꾸니 가로로 배치되었습니다. 어디까지 배치되는지 확인 하기 위해 6개의 버튼을 배치하였는데 button layout_width 가 wrap_content 속성이고 가로 화면이 좁은 탓에 5번째 버튼은 찌그러지고 6번째 버튼은 보이지 않습니다. LinearLayout의 layout_weight 속성을 통해 균등하게 출력되도록 해보겠습니다.

LinearLayout의 layout_weight 속성은 남은 화면의 비율을 나타냅니다. 모든 버튼의 layout_weight 를 1로 설정하니 균등하게 모두 출력되었습니다. 

 

아! 그럼 layout_width의 wrap_content는 먹히지 않는 것일까요? 테스트 결과 wrap_content를 부모 width100%로 출력되는 match_parent로 바꾸니 weight 속성이 1로 잡혀 있어 화면 변화가 생기지 않았지만 weight 속성을 지울 경우 해당 버튼의 layout_width 설정이 우선시 되었습니다. 

 

 layout_width를 match_parent로 설정한 버튼 다섯 개 중 세 번째 버튼의 weight를 1로 세팅하니 세 번째 버튼이 남은 화면을 모두 채웠습니다.

 

LinearLayout 안에 LinearLayout같은 레이아웃을 넣어 가로 세로를 자유롭게 배치할 수 있었습니다.

 

 

728x90

'Study Note > Android' 카테고리의 다른 글

Android #TextView setText() 로 문자 내용 변경하기  (0) 2020.05.08
Android # RelativeLayout  (0) 2020.05.07

댓글