반응형

오늘은 안드로이드의 View Binding(뷰바인딩)에 대해 알아보려고 한다.

 

ViewBinding

ViewBinding(뷰 바인딩)은 뷰와 상호작용하는 코드를 보다 쉽게 작성할 수 있는 기능이다.

뷰바인딩을 사용함으로써, 기존에 사용하던 findViewById를 대체할 수 있다.

 

뷰 바인딩을 이용하기 위해서는 build.gradle에 다음과 같이 명시하여야 한다.

viewBinding {
    enabled = true
}

 

그럼 이제 실제로 뷰 바인딩을 이용해보자.

먼저 예시에서는 메인 액티비티에서 사용을 하려고 한다.

 

기존에는 MainActivity와 activity_main_xml을 연결하기 위해

override fun onCreate(savedInstanceState: Bundle?) {
    super.onCreate(savedInstanceState)
    setContentView(R.layout.activity_main)

위 코드와 같이 작성하여 activity_main 레이아웃 파일과 액티비티를 연결하였고

 

button = findViewById(R.id.button)

이러한 형식으로 버튼 등의 뷰를 연결했을 것이다.

 

하지만 뷰 바인딩을 이용하면 다음과 같이 코드가 바뀐다.

private lateinit var binding: ActivityMainBinding
....
 override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        binding = ActivityMainBinding.inflate(layoutInflater)
     	setContentView(binding.root)

binding이라는 변수에 Activity 뷰 전체가 연결되어 들어가는 형식이다.

 

그래서 binding.root를 하게 되면 activity_main 뷰 전체가 해당이 되고

binding.button을 하게 되면 activity_main 뷰 안의 버튼을 가져올 수 있게 된다.

 

ActivityMainBinding은 임의로 이름을 지은것이 아니라,

레이아웃 파일의 이름에 맞게 탄생한다.

 

activity_main.xml 이면 ActivityMainBinding이 되는 것고

item_book.xml 이면 ItemBookBinding이 되는 것이다.

반응형

+ Recent posts