강의 링크 : https://youtu.be/5SS3Xm3y_8g
- 리니어 레이아웃 : 한 쪽 방향(수평, 수직)으로 정렬
activity_main.xml |
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:id="@+id/activity_main" android:layout_width="match_parent" android:layout_height="match_parent" android:padding="16dp" tools:context="com.example.han.tutorial10.MainActivity" android:orientation="vertical"> <Button android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="버튼"/> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="textview"/> <CheckBox android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="checkbox"/> </LinearLayout>
|
- 렐러티브 레이아웃 : 다른 위젯 기준으로 상대적인 위치를 정의
* android:layout_alignParentTop="true" 부모 엘리먼드의 top에 위치
* android:layout_centerHorizontal="true" 중앙정렬
activity_main.xml |
<?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:id="@+id/activity_main" android:layout_width="match_parent" android:layout_height="match_parent" android:padding="16dp" tools:context="com.example.han.tutorial10.MainActivity"> <Button android:layout_width="100dp" android:layout_height="50dp" android:layout_alignParentTop="true" android:layout_centerHorizontal="true" android:text="위"/>
<Button android:layout_width="100dp" android:layout_height="50dp" android:layout_alignParentBottom="true" android:layout_centerHorizontal="true" android:text="아래"/> </RelativeLayout>
|
- 테이블 레이아웃 : 표
* android:layout_span="2" 몇 칸 차지할지
* android:layout_column="2" 어디서 시작할지
activity_main.xml |
<?xml version="1.0" encoding="utf-8"?> <TableLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:id="@+id/activity_main" android:layout_width="match_parent" android:layout_height="match_parent" android:padding="16dp" tools:context="com.example.han.tutorial10.MainActivity"> <TableRow> <Button android:text="가" /> <Button android:text="나" android:layout_span="2" /> <Button android:text="다" /> </TableRow> <TableRow> <Button android:layout_column="1" android:text="라" /> <Button android:text="마" /> </TableRow> </TableLayout>
|
- 그리드 레이아웃 : 테이블 레이아웃과 비슷. 더 활용도가 높음
* android:layout_column="0", android:layout_row="0" 어디서 시작할지
* android:layout_rowSpan="2" 몇 칸 차지할지
* android:layout_gravity="fill_vertical" 어떻게 채울지
activity_main.xml |
<?xml version="1.0" encoding="utf-8"?> <GridLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:id="@+id/activity_main" android:layout_width="match_parent" android:layout_height="match_parent" android:padding="16dp" android:columnCount="4" android:rowCount="3" tools:context="com.example.han.tutorial10.MainActivity"> <Button android:layout_column="0" android:layout_row="0" android:layout_rowSpan="2" android:layout_gravity="fill_vertical" android:text="A"
/>
<Button android:layout_column="1" android:layout_row="0" android:layout_columnSpan="3" android:layout_gravity="fill_horizontal" android:text="B" />
<Button android:layout_column="2" android:layout_row="1" android:text="다" /> </GridLayout>
|
- 프레임 레이아웃 : 하나의 틀 안에서 다양한 액자들이 바뀔 수 있도록? 가장 왼쪽 위에 겹쳐서 나옴
activity_main.xml |
<?xml version="1.0" encoding="utf-8"?> <FrameLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:id="@+id/activity_main" android:layout_width="match_parent" android:layout_height="match_parent" android:padding="16dp" tools:context="com.example.han.tutorial10.MainActivity"> <RatingBar android:layout_width="50dp" android:layout_height="100dp" /> <TextView android:layout_width="100dp" android:layout_height="100dp" android:text="가"/> </FrameLayout>
|