리니어 레이아웃은 위젯을 가로 혹은 세로로 배치하기 위한 레이아웃입니다. 각각의 레이아웃에서는 사용가능한 설정이 상당히 많고 모든걸 다 알 수 없기 때문에 여기서는 간단히 어떤 용도로 사용한다는 정도만 알고자 합니다. 이 레이아웃을 사용하기 위해서는 기존 레이아웃을 아래와 같이 변경하거나
기존 레이아웃에 새로운 리니어 레이아웃을 추가하면 됩니다.
리니어 레이아웃은 2가지가 있는데 Horizontal은 위젯을 가로로
Vertical은 위젯을 세로로 정렬합니다.
각 방향에 대한 전환은 컴포넌트 트리의 레이아웃에서 마우스 오른쪽 버튼을 눌러 'LinearLayout -> Convert orientation to [방향]'을 선택하면 됩니다.
위젯이 배치된 상태에서 각각의 요소가 차지하는 공간비율을 변경하려면 layout_weight 속성값을 변경합니다. 각 요소의 layout_weight값은 따로 변경하지 않으면 기본값은 1입니다. 따라서 아래 화면처럼 버튼을 3개 배치하게 되면 각각의 버튼은 1:1:1 비율로 공간을 차지하게 됩니다.
이 상태에서 가운데 버튼의 비율을 바꾸기 위해 가운데 버튼의 layout_weight값을 2로 변경해 보겠습니다.
비율이 변경되어 가운데 버튼의 영역이 조금 확장되었습니다. 그런데 숫자로만 보면 비율이 1:2:1로 되어야 하지만 경우에 따라서는 이 비율이 정확하게 적용되지 않는 경우가 있습니다. 이럴때는 현재 배치된 모든 위젯의 layout_width(verticla의 경우에는 layout_height)의 값을 0dp로 변경해주면 됩니다.
이것은 비율을 변경한다고 하더라도 layout_width가 따로 적용되어 있으면 비율다음에 다시 이 속성이 부가적으로 적용되기 때문입니다.
레이아웃 안에 배치되는 위젯은 horizontal의 경우 위에서 처럼 위쪽으로 기본배치됩니다. 만약 이 배치방식을 변경하고자한다면 gravity 속성을 사용하면 됩니다. 오른쪽 속성창에서 gravity속성옆에 깃발모양을 클릭하면 현재 사용가능한 속성들이 나열되며
이들 속성중에서 원하는 배치항목을 선택해 주면 됩니다. 필요에 따라서는 2개 이상 적용이 가능합니다. 아래 화면은 gravity를 center로 맞춰본 결과입니다.
이 gravity 속성은 레이아웃 뿐만 아니라 각각의 위젯에서도 개별적으로 적용할 수 있습니다. 위젯에 이 속성을 적용하면 내부 컨텐츠의 정렬방식이 바뀌게 됩니다. 예를 들어 위 가운데 버튼의 개별 gravity속성을 left로 변경하면
Button내부 글자가 버튼안에서 왼쪽으로 정렬되는것을 볼 수 있습니다.
지금까지 리니어 레이아웃에 대한 내용을 간단히 살펴보았습니다.
'Mobile > Kotlin' 카테고리의 다른 글
[Kotlin] 위젯 - Plain Text (0) | 2020.12.14 |
---|---|
[Kotlin] 위젯 - 텍스트뷰(TextView) (0) | 2020.12.14 |
[Kotlin] 레이아웃(Layout) - 컨스트런트 (0) | 2020.12.11 |
[Kotlin] 제네릭(Generics) (0) | 2020.12.10 |
[Kotlin] 추상 클래스와 인터페이스 (0) | 2020.12.10 |