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