일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |
- 안드로이드 스튜디오
- win10 virtualenv
- 안드로이드 스튜디오 설치
- vscode extension 추천
- android 개발
- 모듈 관리
- 레이아웃
- 안드로이드모듈
- NetworkCallback
- prettier vscode
- 안드로이드 공부
- 안드로이드 시작하기
- 안드로이드 color
- 안드로이드 프로젝트
- listview adapter
- swift idfa 확인방법
- android color 클래스
- 파이썬 의존성
- android studio 3
- xcode idfa
- prettier 사용법
- jitpack
- vscode extenstion
- NetworkInfo 대체
- Log.d
- android 튜토리얼
- logcat 사용법
- 모듈 배포
- NetworkInfo deprecated
- 안드로이드 view
- Today
- Total
세라쌤의 IT 튜토리얼
LinearLayout 본문
1. LinearLayout
2. LinearLayout의 orientation 속성
1) 수평 방향(horizontal)의 배치
xml
</LinearLayout> |
2) 수직 방향(vertical)의 배치
xml
</LinearLayout>
|
결과
3. 중첩된 layout
유저에게 보이는 UI
실제 내부 구성
이 화면의 구성은 다음과 같다.
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" |
루트 역할을 하는 LinearLayout 내부에 세 개의 자식 View가 있다.
EditText, LinearLayout, Button이다.
그리고 자식인 두 번 째 LinearLayout 또한 두 개의 RadioButton 자식을 가지고 있다.
첫 번째 LinearLayout은 배치 방향이 수직이고,
두 번째 LinearLayout은 배치 방향이 수평인 것을 볼 수 있다.
이는 성별을 선택하는 RadioButton을 수평 방향으로 나란히 놓기 위해서다.
하나의 LinearLayout은 배치 방향을 1개만 선택할 수 있으므로 이러한 중첩 레이아웃 구조가 등장한다.
4. 가중치(Weight)
레이아웃의 자식 View는 가중치 설정을 통해 형제 View 사이에 자신의 위치를 비율적으로 지정할 수 있다.
android:layout_weight="정수/실수" |
View의 형제레이아웃이 없을 경우에는 weight 값이 무엇이는 상관 없이 부모가 남겨준 공간의 100%를 차지한다.
값은 절대 수치가 아니라 상대수치로 표현된다. 그 말은 똑같이 1을 주어도 형제가 얼마나 있냐에 따라 1의 의미가 달라진다는 뜻이다.
예를 들어 <LinearLayout>에 자식이 Button1과 Button2 두 개가 있을 경우
둘 모두에 가중치 1씩을 주면 서로 1:1 비율로 공간을 차지한다. (50%)
하지만 Button이 3개이고 가중치를 1씩 주면 1:1:1 비율로 공간을 차지한다. (33%)
만약 Button이 3개이고 가중치를 각각 1, 4, 5를 주면 1:4:5 가 적용되어 다음과 같이 배정된다.
주의!
만약 형제 View에게 layout_weight이 적용되었다면 나머지 형제 View에게도 layout_weight을 적용해주는 것이 좋다.
상황에 따라 가중치가 설정되지 않은 view는 공간을 배정 받지 못할 수 있기때문이다.
하지만 보통의 경우에는 컨텐츠(내부 내용)의 크기에 따라 배정된다.
orientation이
vertical 이라면 자식들의 layout_height를 0dp로 주고,
horizontal이라면 자식들의 layout_width에 0dp를 주는 것이 안전하다.
'Android' 카테고리의 다른 글
Frame Layout (0) | 2019.03.17 |
---|---|
Relative Layout (0) | 2019.03.15 |
안드로이드의 레이아웃(ViewGroup)과 뷰(View) (2) (0) | 2019.03.14 |
안드로이드의 레이아웃(ViewGroup)과 뷰(View) (1) (0) | 2019.03.14 |
android 애플리케이션의 기본 요소 (0) | 2019.03.14 |