자바 어플 개발/기초
FrameLayout
컴공 윤서혜 학습일기
2019. 7. 11. 12:27
화면을 겹치게 하고 싶을때 사용한다.
- Gravity속성을 이용하여 자식컴포넌트를 이동시킬 수 있다.
- Left | top
- center_horizental | top
- Right | bottom
LinearLayout은 FrameLayout의 자식레이아웃이 될 수 있다.
<?xml version="1.0" encoding="utf-8"?>
<FrameLayout 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="match_parent"
tools:context=".MainActivity">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@color/colorAccent">
</LinearLayout>
<LinearLayout
android:layout_width="300dp"
android:layout_height="300dp"
android:background="@color/colorPrimaryDark">
</LinearLayout>
<LinearLayout
android:layout_width="200dp"
android:layout_height="200dp"
android:background="@color/colorPrimary">
</LinearLayout>
</FrameLayout>
소스코드를 보면 알 수 있듯이, 가장먼저 선언된 Layout이 가장밑으로 배치하게 된다.
<?xml version="1.0" encoding="utf-8"?>
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical" android:layout_width="match_parent"
android:layout_height="match_parent">
<TextView
android:layout_width="100dp"
android:layout_height="100dp"
android:layout_gravity="left|top"
android:background="@color/colorPrimaryDark" />
<TextView
android:layout_width="100dp"
android:layout_height="100dp"
android:layout_gravity="top|center_horizontal"
android:background="@color/colorPrimaryDark" />
<TextView
android:layout_width="100dp"
android:layout_height="100dp"
android:layout_gravity="right|top"
android:background="@color/colorPrimaryDark"/>
<TextView
android:layout_width="100dp"
android:layout_height="100dp"
android:layout_gravity="center_vertical|left"
android:background="@color/colorPrimaryDark"/>
<TextView
android:layout_width="100dp"
android:layout_height="100dp"
android:layout_gravity="center"
android:background="@color/colorPrimaryDark"/>
<TextView
android:layout_width="100dp"
android:layout_height="100dp"
android:layout_gravity="center_vertical|right"
android:background="@color/colorPrimaryDark"/>
<TextView
android:layout_width="100dp"
android:layout_height="100dp"
android:layout_gravity="bottom|left"
android:background="@color/colorPrimaryDark"/>
<TextView
android:layout_width="100dp"
android:layout_height="100dp"
android:layout_gravity="bottom|center_horizontal"
android:background="@color/colorPrimaryDark"/>
<TextView
android:layout_width="100dp"
android:layout_height="100dp"
android:layout_gravity="bottom|right"
android:background="@color/colorPrimaryDark"/>
</FrameLayout>
이것은 gravity를 이용해서 TextView의 위치를 조정한 것이다.