안드로이드 개발자의 창고
[28일차 Android] Include Other Layout 본문
출처 : 안드로이드 앱스쿨 2기 윤재성 강사님 수업 PPT
📖 Include Other Layout
- Layout 에서 다른 Layout 을 포함시킬 수 있는 개념이다.
- 다수의 화면을 구성할 때 중복되는 부분이 있을 경우 사용한다.
주요 속성
- layout : 삽입할 화면의 데이터를 정의한 layout 파일
예제 코드
activity_main.xml
<?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"
android:orientation="vertical"
tools:context=".MainActivity" >
<TextView
android:id="@+id/textView3"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="activity_main.xml"
android:textAppearance="@style/TextAppearance.AppCompat.Large" />
<include
android:id="@+id/secondLayout"
layout="@layout/second"
android:layout_width="match_parent"
android:layout_height="wrap_content" />
<include
android:id="@+id/thirdLayout"
layout="@layout/third"
android:layout_width="match_parent"
android:layout_height="wrap_content" />
</LinearLayout>
second.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="match_parent">
<TextView
android:id="@+id/textView"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="second.xml"
android:textAppearance="@style/TextAppearance.AppCompat.Large" />
</LinearLayout>
third.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="match_parent">
<TextView
android:id="@+id/textView2"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="third.xml"
android:textAppearance="@style/TextAppearance.AppCompat.Large" />
</LinearLayout>
MainActivity.kt
import androidx.appcompat.app.AppCompatActivity
import android.os.Bundle
import com.test.android09_includeotherlayout.databinding.ActivityMainBinding
import com.test.android09_includeotherlayout.databinding.SecondBinding
import com.test.android09_includeotherlayout.databinding.ThirdBinding
class MainActivity : AppCompatActivity() {
lateinit var activityMainBinding: ActivityMainBinding
// lateinit var secondBinding: SecondBinding
// lateinit var thirdBinding: ThirdBinding
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
activityMainBinding = ActivityMainBinding.inflate(layoutInflater)
// secondBinding = SecondBinding.inflate(layoutInflater)
// thirdBinding = ThirdBinding.inflate(layoutInflater)
setContentView(activityMainBinding.root)
activityMainBinding.textView3.text = "첫번째 문자열 입니다"
// secondBinding.textView.text = "두번째 문자열 입니다"
// thirdBinding.textView2.text = "세번째 문자열 입니다"
activityMainBinding.secondLayout.textView.text = "두번째 문자열 입니다"
activityMainBinding.thirdLayout.textView2.text = "세번째 문자열 입니다"
}
}
코드 해석
- 주석 처리된 코드로 바인딩하여 secondBinding과 thirdBinding의 textView의 text를 변경하고자 하면 변경되지 않는다.
- Include Other Layout을 사용하여 ActivityMainBinding을 했기 때문에 include를 통해 View에 접근하여 변경해야 한다.
'Computer > Android' 카테고리의 다른 글
[28일차 Android] TextView (0) | 2023.06.10 |
---|---|
[28일차 Android] Space (0) | 2023.06.10 |
[27일차 Android] Layout(LinearLayout, RelativeLayout, ConstraintLayout) (0) | 2023.06.09 |
[27일차 Android] View Binding (0) | 2023.06.07 |
[27일차 Android] View의 기본 개념 (0) | 2023.06.07 |