리니어 레이아웃은 수평 또는 수직 방향으로 정렬할 수 있는 레이아웃 입니다.
사용하기 쉬워서 간단한 레이아웃은 이것으로 다 만들 수 있습니다.
필수 속성
- 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 을 넣을 수 있습니다.
'Android' 카테고리의 다른 글
[Kotlin] Android 에서 Retrofit2 사용하여 API 호출하기 (0) | 2023.07.25 |
---|---|
[Kotlin] apply, with, let, ?: 사용하기 (0) | 2023.07.25 |
[Kotlin] Android Java 와 Kotlin 몇가지 문법 비교 (0) | 2023.07.24 |
[Kotlin] class static 변수 사용하기 companion object (0) | 2023.07.24 |
[Kotlin] 개발할때 알아야할 LifeCycle (0) | 2023.07.24 |
댓글