-
[안드로이드] 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>