마스터Q&A 안드로이드는 안드로이드 개발자들의 질문과 답변을 위한 지식 커뮤니티 사이트입니다. 안드로이드펍에서 운영하고 있습니다. [사용법, 운영진]

안드로이드 네비게이션에 대해 질문 있습니다

0 추천

네비게이션에 대해 질문이 있습니다.
현재 레이아웃이 사진과 같은 구성인데
네비게이션 자체가 화면 흐름에 대해 관리하기 편하고 보기 편하게 사용하는 것으로 이해하였습니다.

그럼 해당 이미지와 같은 구성을 가지고있다면 화면 변동이 있는 프래그먼트에 대한 네비게이션만 존재할 수 있게 되는데 제가 생각한게 맞을까요?

프래그먼트 변동이 되지 않는다면 네비게이션 자체가 없는 것으로 생각됩니다.

zkzkzhzj (1,670 포인트) 님이 2023년 2월 4일 질문
질문을 정확하게 이해하기가 좀 어렵네요.^^ 어떤 걸 하시려고 하는지 명확하게 말씀해 보세요.
앗 죄송합니다
jetpack navigation을 사용하면 action 지정해서 프래그먼트간의 이동을 쉽게 관리할 수 있도록 nav_graph를 사용하여 관리를 할 수 있는데

위 UI를 보시면 프래그먼트의 변동이아닌 프래그먼트 ->(내부) BottomSheetBehavior -> (내부) 프래그먼트 즉 내부에 있는 프래그먼트가 변동되고 있는 부분입니다.

이렇게 보았을때 제일 상단에 있는 메인 프래그먼트의 경우 변동이 없기 때문에 Navigation 내부에 정의 하지 않아도 되고

Navigation 에는 실제 변동이되는 내부 Fragment 에 대해서만 정의를 해주면 되는지에 대한 질문입니다.

왜냐하면 MainFragment는 변동이 전혀 없기 때문이죠
action 자체가 존재하지 않으니까요
실제로 제가 Navigation에 대해서 이해한 부분은 Fragment 간 이동 및 정의를 보기 쉽게, 관리하기 쉽게하기 위하여 사용하는 것으로 이해하였고

위 UI상태라면 이동이 없는 상태인 메인 프래그먼트는 덩그러니 혼자만 Navigation 에 존재하게 됩니다

그래서 연결점이 없는 메인 프래그먼트를 nav_graph.xml 내부에 정의해주지 않아도 되는지에 대한 질의 입니다.

제가 Navigation을 옳바르게 사용하려는 것이 맞는지 고민중에 질문을 드렸습니다.

1개의 답변

+1 추천
 
채택된 답변
Navigation Component 는  HostFragment라는 최상위 프래그먼트가 있고 이 안에서 네비게이션에 따라 프레그먼트를 교체하는 구조입니다.

따라서 Navigation Component를 하나 더 사용하여 처리하는 것은 좀 과한 면이 있을 것 같습니다. 님과 같은 UI는 해당 UI를 가진 프래그먼트만 네비게이션 그래프에 등록을 하고 그 안에서 FragmentManager나 ViewPager를 사용하면 구현이 가능할 것으로 보입니다. FragmentManager를 직접사용해도 되지만, ViewPager2를 사용하시면 구현이 좀 더 쉬울 듯 합니다. ViewPager2에서 Swipe기능을 죽이고 BottomSheet에서 버튼을 누를 때 해당 페이지로 설정하시면 되지않을까 생각합니다. (디자인으로만 보면 BottomSheet가 아니라 Tab으로 보이네요)
spark (227,530 포인트) 님이 2023년 2월 5일 답변
zkzkzhzj님이 2023년 2월 5일 채택됨
말씀 감사합니다!!!!!!
...