[Android] DataBinding의 동작방식 - 6. InverseBinding (InverseBindingAdapter) + Two way Binding
그동안은 단방향 바인딩(One-way Binding)에 대해서만 알아봤다. 즉, 내가 어떤 Model을 XML로 넣어주면(setModel()) XML상에 정의한 규칙에 따라, Model의 정보들을 View에 넣어주는 것이었다. 하지만 반대로 View의 정보를 얻고 싶은 경우가 분명 생긴다. 그것도 View의 값이 변경되는 시점에 말이다. 어쩌면 아직 감이 오지 않을수도 있고, 여기까지 왔다는 것은 InverseBinding의 존재를 알고 검색하다가 온 것일 수도 있다. 어찌되었건 InverseBinding은 생각보다 간단하고 더불어 Two-Way Binding까지 함께 살펴보자. "[Android] DataBinding의 동작방식" 전체목록 1. Setter Method와의 연결 2. BindingAdapter의 기본 및 사용 시점 3. BindingAdapter의 사용시 팁 4. include Tag 혹은 ViewStub 사용시의 Binding 5. Listener, Callback 6. InverseBinding (InverseBindingAdapter) + Two way Binding 1. InverseBinding? Data Setting 관점에서 Binding이 Model To View 였다면, InverseBinding은 View To Model이다. InverseBinding은 사실 이것이 전부이다. 언제 쓰는지 궁금할 수도 있다. 하나의 예를 들어보면 ViewPager와 Page Indicator의 관계를 들 수 있다. 아래의 그림을 보자. 위의 화면은 5개의 Page를 갖는 ViewPager와 현재 Page가 어디인지를 알려주는 Page Indicator로 구성되어있다. 그리고 이 Page Indicator는 ViewPager로부터 현재 페이지가 어디인지 받을 수 있어야 하며, 그를 위해 ViewPager에 OnPageChangeListene