Relative Layout, Linear Layout
App/Android

Relative Layout, Linear Layout

=> 화면을 구성하려면 무엇을 부모 레이아웃으로 정할지를 생각해야 한다.

=> 자식 요소들을 담아내기 위한 요소는 두가지 Relative Layout, Linear Layout이 있다.

:레이아웃 안에 레이아웃이 중첩될수가 있다.

 

1. Linear Layout

   => View를 수평 또는 수직 방향으로 배치할 수 있는 레이아웃이다.

  

    1) android :orientation="vertical" : 하위 뷰들을 수직방향으로 배치한다

    2) android : orientation ="horizontal" : 하위 뷰들을 수평방향으로 배치한다.

=> Linear는 각 요소간의 관계를 적용하지 않고, Relative Layout의 속성들이 적용되지 않는다.

 

 

 

+) layout_weight 속성을 통해 weightSum 만큼 화면을 등분하여 각 요소들이 설정값만큼 위치가 이동하게 된다.

 

<?xml version="1.0" encoding="utf-8"?>
<!--가장 바깥에 싸는 요소는 무엇인지-->
<LinearLayout
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical"
    android:weightSum="9"
    xmlns:android="http://schemas.android.com/apk/res/android">
    <!--weightSum은 전체를 9등분하였을때 각 요소의 위치가 어디에 할당되는지에 대한 합이다.-->
<TextView
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="1"
    android:textSize="20sp"
    android:layout_weight="3"
    />
    <!--weigth를 지정해줌으로써 화면을 9등분해서 각 요소가 얼마만큼 차지할지를 결정한다.-->
    <TextView

        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="2"
        android:textSize="20sp"
        android:layout_weight="3"
        />
    <TextView
        android:text="3"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:textSize="20sp"
        android:layout_weight="3"
       />

</LinearLayout>

 

각 요소의 weight를 3:3:3으로 결정했을 때의 값이다.

 

 

2. RelativeLayout

 => 자식 뷰 또는 부모 뷰 간의 관계에 따라 배치를 적용하는 레이아웃이다.

: 서로간의 관계를 정하려면 기준점이 되는 요소가 필요하다.

 

 

=> 2번 요소를 기준점 요소로 잡고 나머지 요소의 속성을 적용시켰다.

<?xml version="1.0" encoding="utf-8"?>
<!--가장 바깥에 싸는 요소는 무엇인지-->
<RelativeLayout
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical"
    xmlns:android="http://schemas.android.com/apk/res/android">
<TextView
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="1"
    android:textSize="20sp"
    android:layout_above="@id/TextView_2"
    android:layout_centerHorizontal="true"

    />
    <!--id로 누군가의 왼쪽,오른쪽 위치를 지정한 다음에는
        vertical로 세로 위치를 결정해준다.-->
    <TextView
        android:id="@+id/TextView_2"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="2"
        android:textSize="20sp"
        android:layout_centerInParent="true"/>
    <TextView
        android:text="3"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_below="@id/TextView_2"
        android:textSize="20sp"
        android:layout_centerHorizontal="true"
       />

</RelativeLayout>

 

+) 참고

lktprogrammer.tistory.com/133?category=741470

 

[Android] 안드로이드 - 랠러티브 레이아웃(Relative Layout)

RelativeLayout은 자식 뷰 또는 부모 뷰 간의 관계에 따라 배치를 적용하는 레이아웃입니다. 1. RelativeLayout의 기본속성 - gravity 속성과 ignoregravity 속성 속성 설명 gravity RelativeLayout의 자식 뷰들의..

lktprogrammer.tistory.com