[Android Study] 뷰 바인딩

728x90
반응형

* 앞에서 정리한 내용처럼 레이아웃 XML에 뷰를 등록하고 main에서 findViewById() 함수로 일일이 불러와서 사용하는 것은 매우 번거롭다. 그래서 이러한 무의미한 반복작업을 싫어하는 개발자들은 '뷰 바인딩' 기법을 이용해 코드에서 훨씬 더 간편하게 뷰 객체를 이용할 수 있게 만들었다.

 

* 우선 뷰 바인딩을 사용하려면 build.gradle(Module: app)에 설정을 해줘야한다.

 - build.gradle에 android{ } 사이에 맨 밑에 buildFeatures를 위 사진처럼 선언해 준다.

 - 이렇게 하면 레이아웃 XML 파일에 등록된 뷰 객체를 포함하는 클래스가 자동으로 만들어진다. 그리고 이 클래스를 이용해 뷰를 사용하기만 하면 된다.

 - 자동으로 만들어지는 클래스의 이름은 레이아웃 XML 파일명을 따른다. 첫 글자를 대문자로 하고 밑줄은 빼고 뒤에 오는 단어를 대문자로 만든 후 'Binding'을 추가한다.

    * activity_main.xml -> ActivityMainBinding

    * item_main.xml -> ItemMainBinding

 

- 자동으로 만들어진 클래스에 inflate() 함수를 호출하면 바인딩 객체를 얻을 수 있다. 이때 인자로 IayoutInflater를 전달한다. 그리고 바인딩 객체의 root 프로퍼티에는 XML의 루트 태그 객체가 자동으로 등록되므로 액티비티 화면 출력은 setContentView() 함수에 binding.root를 전달하면 된다.

class MainActivity : AppCompatActivity() {
    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
       
       // 바인딩 객체 획득
       val binding = ActivityMainBinding.inflate(layoutInflater)
       // 액티비티 화면 출력
       setContentView(binding.root)
       
       // 뷰 객체 이용
       binding.visibleBtn.setOnClickListener {
           binding.targetView.visibility = View.VISIBLE
       }
       
    }
}

 

 - XML 파일에 <Button android:id="@+id/visibleBtn" /> 으로 id를 visibleBtn으로 설정한 버튼을 main에서 사용하려면 binding.visibleBtn 이런식으로 간단하게 호출할 수 있다!

728x90
반응형

'Study > Android' 카테고리의 다른 글

[Android] 리소스 - 국가별 언어 설정하기  (0) 2024.03.10
[Android Study] 레이아웃 - LinearLayout  (0) 2024.03.10
[Android Study] 뷰의 종류  (0) 2024.03.08
[Android Study] 뷰 클래스  (0) 2024.03.07
[Android] 구글 로그인  (1) 2024.03.06
TAGS.

Comments