티스토리 뷰

728x90

 


리니어 레이아웃

• 자식 뷰들을 하나의 가로 또는 세로 방향으로 정리하는 레이아웃

• 부모가 될 수 있는 컨테이너 뷰

 

1. 속성

• orientation : 자식 뷰의 방향을 설정

     - horizontal : 가로, 수평 방향.

     - vertical : 세로, 수직 방향.

• android:layout_width / android:layout_height : 레이아웃의 가로 / 세로 길이

     - 직접 입력 : 100dp, 5px 같이 길이를 직접 입력

     - match_parent : 부모 뷰의 길이만큼으로 설정

          * 만약 부모 뷰가 없는 최상위 뷰라면 화면 전체를 기준으로 삼는다.

     - wrap_content : 내용물의 크기만큼 설정

• android:layout_weight : (가중치) / (전체 가중치) 비율로 부모 뷰를 차지.

     ex) view1의 가중치 2, view2의 가중치 3, view3의 가중치

           -> view1은 2/8, view2는 3/8, view3은 5/8 만큼의 부모 뷰를 차지.

• android:background : 배경색 설정

 

2. XML 태그

• LinearLayout의 xml 태그에는 <LinearLayout> 태그와 <androidx.appcompat.widget.LinearLayoutCompat> 태그가 있다.

     - 기능적으로 차이가 크게 없으므로 비교적 최신에 나온 <androidx.appcompat.widget.LinearLayoutCompat>을 사용하면 된다.

아래의 com.google~ 은 무시해도 된다.

 

* androidx에 관하여

• 개발자는 스마트폰의 하드웨어 단계나 기기의 기능에 '직접' 접근하여 제어하지 않아도 애플리케이션을 개발할 수 있다.

• 이는 안드로이드에서 제공하는 안드로이드 프레임워크 위에서 우리가 개발하고 있기 때문이다.

• 안드로이드 프레임워크란 애플리케이션 개발자가 안드로이드 OS의 전체적인 기능을 API 등을 통해 쉽게 접근할 수 있도록 안드로이드에서 제공하는 환경이다.

• 하지만 안드로이드 프레임워크도 모든 기능을 제공하지는 않는데, 이렇게 프레임워크에서 제공하지 않는 기능을 보조로 지원해주는 안드로이드 지원 라이브러리(Android Support Library)가 존재한다.

• 안드로이드 지원 라이브러리는 새 버전 API에 대한 하위 호환성이나 RecyclerView 같은 편의 클래스 등을 제공해준다.

• 기존에 사용하던 안드로이드 지원 라이브러리들을 개선하여 하나로 통합한 것이 바로 androidx이다.

• 즉, androidx는 안드로이드 프레임워크와 같이 개발자가 애플리케이션을 편하게 개발할 수 있도록 도와주는 도구이다.

ex) <androidx.appcompat.widget.LinearLayoutCompat> 태그

ex) 빈 activity를 생성하면 기본으로 구성되어 있는 <androidx.constraintlayout.widget.ConstraintLayout> 태그.

 

3. 실전

<?xml version="1.0" encoding="utf-8"?>
<androidx.appcompat.widget.LinearLayoutCompat
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical">

    <androidx.appcompat.widget.LinearLayoutCompat
        xmlns:android="http://schemas.android.com/apk/res/android"
        android:layout_width="wrap_content"
        android:layout_height="200dp"
        android:orientation="horizontal"
        android:background="#FF0000">

        <TextView
            android:layout_width="100dp"
            android:layout_height="match_parent"
            android:background="#00FF00"
            android:layout_margin="3dp"/>

        <TextView
            android:layout_width="150dp"
            android:layout_height="match_parent"
            android:background="#0000FF"
            android:layout_margin="3dp"/>

        <TextView
            android:layout_width="80dp"
            android:layout_height="match_parent"
            android:background="#00FFFF"
            android:layout_margin="3dp"/>

    </androidx.appcompat.widget.LinearLayoutCompat>

    <androidx.appcompat.widget.LinearLayoutCompat
        xmlns:android="http://schemas.android.com/apk/res/android"
        android:layout_width="match_parent"
        android:layout_height="200dp"
        android:orientation="horizontal"
        android:background="#FF0000">

        <TextView
            android:layout_width="0dp"
            android:layout_height="match_parent"
            android:layout_weight="2"
            android:background="#00FF00"
            android:layout_margin="3dp"/>

        <TextView
            android:layout_width="0dp"
            android:layout_height="match_parent"
            android:layout_weight="3"
            android:background="#0000FF"
            android:layout_margin="3dp"/>

        <TextView
            android:layout_width="0dp"
            android:layout_height="match_parent"
            android:layout_weight="5"
            android:background="#00FFFF"
            android:layout_margin="3dp"/>

    </androidx.appcompat.widget.LinearLayoutCompat>

</androidx.appcompat.widget.LinearLayoutCompat>

 

 

 

 

 

 

 

이 글은

패스트 캠퍼스 Android 앱 개발의 정석 with Kotlin 올인원 패키지 Online

강의를 듣고 공부한 내용을 바탕으로 작성되었습니다.

 


728x90
댓글
공지사항