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 부터 재 바인딩이된다.