728x90
include 태그
- 한 레이아웃 파일의 내용을 다른 레이아웃에 삽입할 때 사용됨
merge 태그
- merge 태그가 포함된 레이아웃이 다른 레이아웃에 추가될 때 merge 노드가 사라지고 자식뷰들만 새 부모 레이아웃에 직접 추가됨
- 단일 루트노드를 생성하기 위한 불필요한 중첩 제거
=> 이 둘을 결합하여 깊게 중첩된 레이아웃 계층 구조를 만들지 않고 유연, 재사용가능한 레이아웃 정의 생성가능
EX) 위에서부터 차례로 add1.xml, add2.xml, activity_main.xml
<?xml version="1.0" encoding="utf-8"?>
<merge xmlns:android="http://schemas.android.com/apk/res/android">
<TextView
android:text="add1"
android:layout_width="match_parent"
android:layout_height="wrap_content" />
</merge>
<?xml version="1.0" encoding="utf-8"?>
<merge xmlns:android="http://schemas.android.com/apk/res/android">
<TextView
android:text="add2"
android:layout_width="match_parent"
android:layout_height="wrap_content" />
</merge>
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout 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">
<include
android:id="@+id/add1"
layout="@layout/add1"/>
<include
android:id="@+id/add2"
layout="@layout/add2"/>
</LinearLayout>
add1.xml과 add2.xml의 내용을 activity_main.xml에 추가
(merge 태그가 제거되고 activity_main.xml의 LinearLayout이 부모노드가 됨)
728x90
'Android' 카테고리의 다른 글
[안드로이드 이슈] AndroidX의 RecyclerView 사용 시 (0) | 2020.09.08 |
---|---|
[안드로이드 이슈] 패키지 이름은 반드시 소문자로 시작 (0) | 2020.09.08 |
[안드로이드] MVC, MVP, MVVM에 관하여 잘 정리된 글 (0) | 2020.09.08 |
[안드로이드] 액티비티 수명(Life Cycle) (0) | 2020.09.08 |
[안드로이드] 액티비티 상태 (0) | 2020.09.08 |
댓글