MVP 패턴으로 어댑터를 어떻게 처리합니까? 예를 들어,이 프로젝트에서 https://github.com/msahakyan/nested-recycler-view 이 MovieAdapter, https://github.com/msahakyan/nested-recycler-view/blob/master/app/src/main/java/com/android/msahakyan/nestedrecycler/adapter/MovieAdapter.java입니다.이 사람은이 어댑터의 항목으로 recyclierview를 가지고 있습니다 (프로젝트를 보면 홈 화면에 recyclierview가 중첩되어 있습니다). , 그는 서비스 호출 및 기타 알림, 데이터로드 (서비스에서 가져 오기) 등의 작업을이 어댑터에서 수행합니다. (관련 프래그먼트/활동에 대한 통신이 없습니다.) 알다시피이 어댑터는 할 일이 많습니다. 그렇게한다면, 어떻게 이것을 mvp 패턴으로 구현할 수 있을까요? 특히,이 컨텍스트에서 어댑터에 발표자 개체가 있거나 해당 호출을 수행하기위한보기 개체가 있습니까? 알림 및로드?Mvp 패턴으로 어댑터의 역할?
5
A
답변
13
어댑터는 순수한 뷰 레이어입니다. RecyclerView ViewHolder의 버튼을 클릭하는 것과 같은 모든 상호 작용을 Activity/Fragment로 매핑 한 다음 Activity/Fragment의 발표자로 전달합니다.
스크롤하는 동안 ViewHolders를 재활용 할 수 있기 때문에 RecyclerView가 약간 번잡합니다. "상위"활동/조각 및 해당 발표자로 이동하면 ViewHolder를 업데이트하는 것이 훨씬 쉽고 오류가 적습니다. (예 : DiffUtils를 사용하여 애니메이션 사용). 데이터 객체를 표시하는 방법과 마찬가지로 ViewHolder를 가져오고 ViewHolder를 조정하기 위해 각 ViewHolder에 대한 Presenter를 추가하지 마십시오. 실제로 ViewHolder가 ViewHolder가 표시해야하는 모든 정보를 포함하는 데이터 객체를 가져오고 ViewHolders Presenter에서이 데이터 객체를 "제어"하지 않도록합니다. 그렇지 않으면 하나의 ViewHolder가 그의 발표자에 의해 업데이트를 얻었 기 때문에 혼란스러워졌습니다. 아마도 ViewHolder가 화면에 방향이 변경되었거나 어쩌면 "부모"Activity/Fragment Presenter가 어댑터의 전체를 업데이트했을 수도 있습니다. 데이터 세트 등 RecyclerView가 "부모"Activity/Fragment Presenter를 사용하여 표시해야하는 데이터를 "조정/제어"하는 한 명의 발표자 만 사용하십시오.
정말 고맙습니다. –