오늘도 더 나은 코드를 작성하였습니까?

DataBinding Incldue ViewStub 사용하기. 본문

Android Jetpack Architecture/DataBinding

DataBinding Incldue ViewStub 사용하기.

hik14 2020. 8. 12. 05:19

Include

- 속성의 이름을 통하여 바인딩 변수를 include 되는 xml 로전달한다

- include.xml 에서 바인딩 변수명을 속성명과 동일하게 하여 받을 수 있다. 

- 각 분할된 레이아웃 파일에 대해 바인딩되는 viewModel은 최상위에 바인딩된 뷰모델안에 참조를 둔다.

viewStub

- include와 동일한 형태로 바인딩변수를 넘겨줄수 있다.

- 바인딩 어텝터를 따로 정의 하지 않으면 바인딩이 어렵다.

- ViewStub도 View를 상속하기 때문에 View를 파라미터로 받는 바인딩 어뎁터를 사용할수 있다.

- 하지만 ViewStub만의 로직을 필요로하다면 인 ViewStub을 파라미터로 받는 바인딩 어뎁터를 만들어준다.

- 반드시 id를 지정해야 XXXBindingClass를 포함한 viewStubProxy를 생성해준다.

- 동적으로 최초 inflate시 bindingAdapter를 통해 visibility를 관리해야한다.

- inflate될때 현재 viewStub이 속한 상위 layout 부터 재 바인딩이된다.