본문 바로가기

개발/모바일

안드로이드 스튜디오 Lec10 레이아웃(Layout)

반응형

강의 링크 : 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>




반응형