탐색

탐색은 사용자가 앱 내의 여러 콘텐츠를 탐색하고, 그곳에 들어갔다 나올 수 있게 하는 상호작용을 의미합니다. Android Jetpack의 탐색 구성요소는 단순한 버튼 클릭해서 좀 더 복잡한 패턴(앱바, 탐색 창)에 이르기까지 여러 가지 탐색을 구현하도록 도와줍니다. 탐색 구성요소는 기존의 원칙을 준수하여 일관적이고 예측 가능한 사용자 환경을 보장합니다.

탐색 구성요소는 세 가지 주요 부분으로 구성되는데, 그 내용은 아래와 같습니다.

  • 탐색 그래프: 모든 탐색 관련 정보가 하나의 중심 위치에 모여 있는 XML 리소스입니다. 여기에는 대상이라고 부르는 앱 내의 모든 개별적 콘텐츠 영역과 사용자가 앱에서 갈 수 있는 모든 이용 가능한 경로가 포함됩니다.
  • NavHost: 탐색 그래프에서 대상을 표시하는 빈 컨테이너입니다. 대상 구성요소에는 프래그먼트 대상을 표시하는 기본 NavHost 구현인 NavHostFragment가 포함됩니다.
  • NavController: NavHost에서 앱 탐색을 관리하는 객체입니다. NavController는 사용자가 앱 내에서 이동할 때 NavHost에서 대상 콘텐츠의 전환을 오케스트레이션합니다.

앱을 탐색하는 동안 탐색 그래프에서 특정 경로를 따라 이동할지, 특정 대상으로 직접 이동할지 NavController에게 전달합니다. 그러면 NavControllerNavHost에 적절한 대상을 표시합니다.

대상 구성요소는 다음을 포함한 여러 가지 장점이 있습니다.

  • 프래그먼트 트랜잭션 처리.
  • 기본적으로 '위로'와 '뒤로' 작업을 올바르게 처리.
  • 애니메이션과 전환에 표준화된 리소스 제공.
  • 딥 링크 구현 및 처리.
  • 최소한의 추가 작업으로 탐색 UI 패턴(예: 탐색 창, 하단 탐색) 포함.
  • Safe Args - 대상 사이에서 데이터를 탐색하고 전달할 때 유형 안정성을 제공하는 그래프 플러그인입니다.
  • ViewModel 지원 - 탐색 그래프에 대한 ViewModel을 확인해 그래프 대상 사이에 UI 관련 데이터를 공유합니다.

또한 Android Studio의 Navigation Editor를 사용하여 탐색 그래프를 확인하고 편집할 수 있습니다.

다음 단계

탐색 구성요소와 관련된 추가적인 문서와 리소스는 다음을 참조하세요.

시작하기

추가적인 주제

샘플

코드랩

블로그 게시물

동영상