LinearLayout의 자식 View에는 가중치를 부여할 수 있다.
가중치는 layout_weight 로 표현되며 가중치는 정수로 표현되며 자식뷰의 중요도를 나타낸다.
LinearLayout 의 자식 View들의 가중치가 각각 1, 2, 3 이면 남아있는 공간의 1/6, 2/6, 3/6을 각각 할당한다.
자식 View의 가중치를 지정하지 않으면 android:layout_weight="0" 으로 간주하고 확장하지 않는다.
layout_gravity : 부모 컨테이너의 여유 공간에 View가 모두 채워지지 않아 여유 공간 안에서 View를 정렬할 때
gravity : View 에서 화면에 표시하는 내용물을 정렬할 때
weight는 비율을 주는 속성인데 width나 height중 비율을 주고싶은 속성에 0dp를 줘야한다.
여기선 한줄을 똑같이 나눠가지길 원하니까 width의 값에 0dp를 주어야한다.
또 항목들을 감싸고 있는 레이아웃에 weigthSum값을 지정해 주어야 하는데 이것은 선택사항이다.
weight는 비율 값이라 0.00~1.00까지의 값을 가진다.
weighSum은 하위 각각 레이아웃 weight의 값의 합이 되어야 하며 값을 초과하게될 경우 레이아웃이 View에서 벗어나게 된다.
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal"
android:weightSum="5">
<Button
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="1" />
<Button
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="3"
android:text="2" />
<Button
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="3" />
</LinearLayout>
실전 예제
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="60dp"
android:orientation="horizontal"
android:background="@drawable/bg_border">
<TextView
android:id="@+id/line_rank"
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight="1.5"
android:layout_gravity="center"
android:textAppearance="@style/TextAppearance.AppCompat.Large"
android:textColor="?android:attr/textColorSecondary"
android:gravity="center"
android:textStyle="bold"
tools:text="1" />
<View
android:layout_width="0.5dp"
android:layout_height="match_parent"
android:background="@color/colorDivider"
android:layout_gravity="center_vertical"
android:layout_marginEnd="15dp"
android:layout_marginStart="10dp"/>
<LinearLayout
android:layout_width="0dp"
android:layout_height="60dp"
android:layout_weight="5"
android:orientation="vertical">
<TextView
android:id="@+id/line_name"
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="1"
android:gravity="left|center_vertical"
android:ellipsize="end"
android:maxLines="1"
android:singleLine="true"
android:text="가든파이브"
android:textColor="@color/colorDarkGray"
android:textAppearance="?textAppearanceSubtitle1"
android:textSize="14dp" />
<TextView
android:id="@+id/line_address"
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="1"
android:gravity="left|center_vertical"
android:ellipsize="end"
android:singleLine="true"
android:maxLines="1"
android:textColor="#999"
android:textSize="11dp"
android:textAppearance="?textAppearanceSubtitle1"
tools:text="서울시 송파구 문정동 충민로 66" />
</LinearLayout>
<LinearLayout
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="2"
android:background="@android:color/transparent"
android:layout_gravity="center"
android:orientation="vertical">
<TextView
style="?attr/textAppearanceSubtitle2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:text="부동산"/>
<TextView
android:id="@+id/estate"
style="?attr/textAppearanceSubtitle2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:textColor="@color/blue_700"
android:maxLines="1"
android:text="50"/>
</LinearLayout>
<LinearLayout
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="2"
android:background="@android:color/transparent"
android:layout_gravity="center"
android:orientation="vertical">
<TextView
style="?attr/textAppearanceSubtitle2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:text="계약자"/>
<TextView
android:id="@+id/contractor"
style="?attr/textAppearanceSubtitle2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:textColor="@color/blue_700"
android:maxLines="1"
android:text="50"/>
</LinearLayout>
<LinearLayout
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="2"
android:background="@android:color/transparent"
android:layout_gravity="center"
android:orientation="vertical">
<TextView
style="?attr/textAppearanceSubtitle2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:text="예약자"/>
<TextView
android:id="@+id/reservation"
style="?attr/textAppearanceSubtitle2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:textColor="@color/blue_700"
android:maxLines="1"
android:text="50"/>
</LinearLayout>
</LinearLayout>
</LinearLayout>
|
https://link2me.tistory.com/2039 에 Android Material Design 적용한 칼라 색상 정리해 놓은 자료가 있다.
'안드로이드 > Layout' 카테고리의 다른 글
Android Fragment 기본 예제 (0) | 2018.09.11 |
---|---|
FloatingActionButton(FAB) (0) | 2018.08.15 |
Android ViewFlipper(뷰플리퍼) (0) | 2017.05.02 |
Fragment 화면 이동 (0) | 2017.03.26 |
안드로이드 Layout (0) | 2016.07.23 |