android
[안드로이드/코틀린] fragment에서의 데이터 바인딩
hrniin
2023. 10. 9. 18:26
728x90
데이터 바인딩을 하기 위해 가장 먼저 해야할 일은 xml 파일에 대응하는 binding 파일의 객체를 생성하는 것이다.
이 객체를 이용해 xml 아이디를 바로 접근해 뷰를 제어할 수 있다.
binding = DataBindingUtil.setContentView(this, R.layout.activity_notification)
activity에서는 위처럼 xml 파일명을 setContentView에 넣어서 binding 객체를 얻는다.
override fun onCreateView(inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle?): View? {
super.onCreateView(inflater, container, savedInstanceState)
binding = binding파일명.inflate(inflater, container, false)
//...
return binding.root
}
반면에 fragment는 activity의 하위 개념이기 때문에 setContentView를 사용하면 오류가 발생한다.
따라서 위 코드와 같이 binding 객체를 얻을 수 있다.
fragment에 해당하는 xml의 binding 파일명의 inflate()를 호출한다.
(fragment xml의 파일명이 fragment_main.xml이라면, binding 파일명은 FragmentMainBinding)
728x90