반응형
💡 View Binding 이란?
- view 접근을 쉽고 간단하게 할 수 있는 방법
- 코드에서 뷰를 사용하기 위해 매번 변수를 만들고 view 객체의 주소값을 findviewById() 로 찾아 넣는 방식이 아니라 뷰의 id를 바로 사용할 수 있도록 xml 파일을 객체화해 사용하는 방법
- layout 폴더에 있는 xml 파일 하나당 하나의 클래스가 생성되고, 해당 xml 파일의 view를 관리
- 안드로이드 스튜디오 버전이 변경되면서 추가된 라이브러리(기능)
* 기존 kotlin에서는 android extention 라이브러리를 깔면 xml에서 생성했던 view 객체들을 id 로 자바코드에서 바로 사용 할 수 있도록 관리되었다. 하지만 extention 또한 decreated 되면서 Java/kotlin 모두 View Binding을 사용해야 한다.
*gradle 설정 (의존성 관리)
viewBinding {
enabled = true // View Binding 사용을 위한 설정
}
// 또는
buildFeatures {
viewBinding = true // View Binding 사용을 위한 설정
}
- viewBinding 객체를 담을 변수 생성 , 뷰바인딩 클래스는 xml 파일 이름을 사용해 자동 생성
ex) activity_mian.xml → ActivityMainBinding - inflate()를 사용해 xml 코드를 객체화, xml에 배치된 view들을 모두 객체화, 객체화된 xml은 viewBinding 객체에서 관리
- xml의 최상위 객체로 화면 구성 세팅 (하위 배치된 view들까지 모두 사용 가능)
class MainActivity : AppCompatActivity() {
//lateinit var testBtn1 : Button
//testBtn1 = findViewById(R.id.button)
private lateinit val binding : activityMainBinding? = null
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
//setContentView(R.layout.activity_main) // 기존 setContentView 제거
}
반응형
'Android' 카테고리의 다른 글
[안드로이드/AdapterView] AdapterView의 개념과 ListView, GridView (0) | 2022.09.13 |
---|---|
[안드로이드/Layout] Layout의 개념/종류 (0) | 2022.09.06 |
[안드로이드/View] View의 개념 (0) | 2022.09.03 |
내가 몰라서 정리하는 SDK, JDK, API 개념 (0) | 2022.03.15 |
[Android Studio] 프로젝트 SDK버전, AVD (0) | 2022.03.13 |