본문 바로가기

MVVM3

MVVM - ViewPager와 TabLayout MVVM - ViewPager와 TabLayout ViewPager와 TabLayout을 MVVM패턴을 적용하여 사용하는 방법을 알아보겠습니다. 아래는 적용된 사진입니다 .프래그먼트 1개로 동적으로 4개의 탭을 만들어 뷰페이저에 적용하였습니다. 그리고 뷰페이저와 탭레이아웃을연결하여 탭을 클릭하면 뷰페이저 프래그먼트가 바뀌도록 되어있습니다. 크게 MainActivity와 childFragment로 구성되어있습니다 .먼저 MainAcitivity의 레이아웃먼저 보도록하겠습니다 . activity_main.xml TabLayout과 ViewPager가 있습니다.TabLayout에는 app:setupWithViewPager 를 이용하여 뷰페이저 아이디를 넣어 연결해줍니다.ViewPager에는 addOnPageC.. 2019. 3. 26.
데이터바인딩 - 리스너바인딩하기 데이터바인딩 - 리스너바인딩하기버튼을 클릭했을때나 리스너들은 모두 뷰모델에서 처리할 수 있습니다. onClick 처럼 이름이 정해져 있는 것들은 다르게 쓰면 안되고 그대로 써야합니다.ex ) android:onClick="@{(v)->viewModel.clickEvent()}" 다른 컴포넌트 들은 setOn~Listener에서 set을 빼고 O를 소문자 o로 바꿔쓰면 작동합니다.ex) setOnNavigationSelectListener - >app:NavigationItemSelectedListener="@{viewModel::NavigationItemSelectedListener}"ex)onRangeSelectListener-> app:onRangeSelectedListener="@{calendarD.. 2019. 2. 21.
안드로이드 MVVM 패턴 안드로이드 MVVM 패턴 MVVM의 기본 구조MVVM의 기본 구조를 그림으로 표현한 것입니다. View는 ViewModel에게 클릭 이벤트, 필요한 데이터 요청등을 명시적으로 하고, viewModel이 notify 할때까지 기다리게 됩니다. 그와 동일하게 ViewModle은 통해 데이터를 요청하고 기다리게 됩니다. 각각의 컴포넌트 간 레퍼런스를 갖지 않고 단방향(View -> ViewModel -> Model)의 디펜던시만을 갖게 됩니다. ViewModelView와 Model 사이의 매개체 역할을 합니다. 즉 Model 에서 제공받은 데이터를 UI에서 필요한 정보로 가공한 뒤 View가 가져갈 수 있게 데이터 변경에 대한 "이벤트"를 보내게 됩니다 ViewModel과 View는 MVP패턴과 다르게 Man.. 2019. 1. 26.