안드로이드 샘플앱 참조하기

https://srandroid.tistory.com/254

 

[안드로이드][sunflower][3] 리사이클러 뷰에서 항목 선택 시 상세 화면 이동 분석

항목 클릭 시 이동 기능 구현 PlantAdapter에서 세가지 특징을 확인했습니다. 1. PlantAdapter클래스안에서 ViewHolder 클래스 정의 2. ViewHolder클래스에서 클릭 이벤트 와 화면 이동 이벤트 정의 3. Navigatio..

srandroid.tistory.com

 

네비게이션 추가하기

MyReviewFragment 네비게이션 추가

 

어려운점

화면마다 모듈화를 하다보니 navigation 리소스에 대한 정보를 하나의 모듈에서만 가지고 있어서 화면 이동으로 위해서는 모든 모듈이 Navigation에 대한 리소스가 필요한 상황인데 이부분이 현재 문제가 되고 있습니다.

 

우회하여 해결

core모듈은 거이 모든 모듈들이 의존하고 있습니다.

네비게이션 리소스의 주소를 core 모듈에 넣는 방법으로 해결하였는데 좋은 방법은 아닌것 같습니다. 그렇다고 나눠놓은 화면 모듈들을 다시 합치기도 별로 내키지 않아서 일단 문제를 나중에 해결하기로 하고 우회하여 적용하였습니다.

package com.sarang.torangdi.navigation

class MyReviewNavigation {
    companion object {
        var action_myReviewsFragment_to_myReviewFragment = 0
    }
}

 

이동 코드 구현

navigation component의 safeargs를 사용하고 싶었는데 현재 모듈들이 분리되어있어 해결방법을 아직 못찾았습니다.

bundleOf를 사용하여 파라미터 전달을 구현하였습니다.

internal class MyReviewsVH(private val itemMyReviewBinding: ItemMyReviewBinding) :
    RecyclerView.ViewHolder(
        itemMyReviewBinding.root
    ) {
...

    init {
        itemMyReviewBinding.imageView5.setOnClickListener { v ->
            review?.also {
                val bundle = bundleOf("review_id" to it.review.review_id);
                v.findNavController()
                    .navigate(
                        MyReviewNavigation.action_myReviewsFragment_to_myReviewFragment,
                        bundle
                    )
            }
        }
...

+ Recent posts