ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [안드로이드] xml의 include 태그
    카테고리 없음 2024. 3. 21. 10:20

    include

    xml에서 반복되는 레이아웃을 재사용하기 위해 사용하는 태그이다.

    아래 사진은 activity_sign_in.xml, activity_sign_up.xml이다.

    아이디 부분만 예시로 들어보자면 완전히 겹치는걸 알 수 있다.


    include 사용법

    아래처럼 id_group.xml로 중복되는 레이아웃을 따로 분리한 후

    activity_sign_in.xml, activity_sign_up.xml에 적용시키면 중복되는 레이아웃을 줄일 수 있다.

    (위/아래 코드를 생략하니 사실상 거의 같은 코드로 보인다.)

    <!-- id_group.xml -->
    <?xml version="1.0" encoding="utf-8"?>
    <androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
        android:id="@+id/id_group"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        xmlns:app="http://schemas.android.com/apk/res-auto">
    
        <TextView
            android:id="@+id/id_title"
            style="@style/Description"
            android:text="@string/id_title"
            app:layout_constraintEnd_toEndOf="parent"
            app:layout_constraintHorizontal_bias="0.07"
            app:layout_constraintStart_toStartOf="parent"
            app:layout_constraintTop_toTopOf="parent" />
    
        <EditText
            android:id="@+id/id_input"
            style="@style/Input"
            android:hint="@string/id_hint"
            android:inputType="text"
            app:layout_constraintEnd_toEndOf="@+id/id_title"
            app:layout_constraintHorizontal_bias="0.0"
            app:layout_constraintStart_toStartOf="@+id/id_title"
            app:layout_constraintTop_toBottomOf="@+id/id_title" />
    
    </androidx.constraintlayout.widget.ConstraintLayout>
    <!-- activity_sign_in.xml -->
    <?xml version="1.0" encoding="utf-8"?>
    <androidx.constraintlayout.widget.ConstraintLayout 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=".SignInActivity">
        <!-- 생략... -->
        <include
            layout="@layout/id_group"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_marginTop="40dp"
            app:layout_constraintTop_toBottomOf="@+id/logo" />
        <!-- 생략... -->
    </androidx.constraintlayout.widget.ConstraintLayout>
    <!-- activity_sign_up.xml -->
    <?xml version="1.0" encoding="utf-8"?>
    <androidx.constraintlayout.widget.ConstraintLayout 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=".SignUpActivity">
        <!-- 생략... -->
        <include
            layout="@layout/id_group"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_marginTop="30dp"
            app:layout_constraintTop_toBottomOf="@+id/name_group" />
        <!-- 생략... -->
    </androidx.constraintlayout.widget.ConstraintLayout>
Designed by Tistory.