본문 바로가기
Android

[Kotlin] 리니어 레이아웃(LinearLayout) 예제

by bryan.oh 2023. 7. 25.
반응형

리니어 레이아웃은 수평 또는 수직 방향으로 정렬할 수 있는 레이아웃 입니다.

사용하기 쉬워서 간단한 레이아웃은 이것으로 다 만들 수 있습니다.

 

필수 속성

  • layouut_width : 가로 사이즈
  • layout_height : 세로 사이즈
  • orientation : 방향 (horizontal, vertical)

 

Activity 만들기

- empty activity를 하나 생성합니다. 이름은 LinearTestActivity

 

기본적으로 생성되는 레이아웃이 ConstraintLayout 이므로, LinearLayout 으로 변경합니다.

res/layout/activity_linear_test.xml > Component Tree > ConstraintLayout > Convert view... 클릭

아래와 같은 팝업창이 뜬다면 LinearLayout 을 선택하고 Apply

 

참고 : Component Tree 가 안보인다면 Design 으로 선택 하거나, Split 으로 선택해서 좌측 palette를 열면 보입니다.

 

그리고 palette 에서 버튼을 세번 드래그 드랍합니다.

 

참고. 경고 메시지 "button should be borderless"
File > Setting > Editor > Inspections 에서
Android > Lint > Usability > Button should be borderless 항목을 체크해제하면 경고 메시지가 사라집니다.


또는 아래와 같이 style="?android:attr/buttonBarButtonStyle" 을 button 에 추가하면 경고 메시지가 없어집니다.

 

LinearLayout 에서 orientation 을 vertical 로 입력하면 (기본값이 horizontal) UI 가 바뀝니다.

 

그리고 button 중 하나의 width 를 match_parent 로 변경하면 아래와 같은 화면이 됩니다.

 

weight

weight 라는 값이 있는데, 

지금은 버튼 3개에 각각 weight 가 1 로 설정된 상태입니다. 모두 같은 넓이를 갖는다는 뜻입니다.

가운데 버튼만 5로 설정하면 다음과 같이 변합니다.

 

그리고 weight 속성을 모두 제거하면, height 설정이 적용됩니다. (현재는 wrap_content)

 

Gravity

gravity 는 중력이란 뜻으로 정렬 속성입니다.

layout_gravity : 부모 컨테이너의 여유 공간에 뷰가 모두 채워지지 않아 여유 공간이 생겼을 때 여유 공간 안에서 뷰를 정렬함
gravity : 뷰 안에 표시하는 내용물을 정렬함.

 

위 예제에서 LinearLayout 에 android:gravity="center" 를 추가하면 아래와 같이 됩니다.

 

 

여기까지 설명한 내용을 기본적으로 알고 있다면

LinearLayout 안에 LinearLayout 을 넣을 수 있습니다.

 

728x90
반응형

댓글