탐색 3

Navigation 3은 Compose와 함께 작동하도록 설계된 새로운 탐색 라이브러리입니다. Navigation 3을 사용하면 백 스택을 완전히 제어할 수 있으며 목록에서 항목을 추가하고 삭제하여 대상 간에 탐색할 수 있습니다. 다음과 같은 기능을 제공하여 유연한 앱 탐색 시스템을 만듭니다.

  • 백 스택의 각 항목이 사용자가 탐색한 콘텐츠를 나타내는 백 스택 모델링 규칙
  • 애니메이션을 포함한 백 스택 변경사항으로 자동 업데이트되는 UI
  • 항목이 백 스택에 있는 동안 상태를 유지할 수 있는 백 스택의 항목 범위
  • 여러 대상을 동시에 표시하고 이러한 레이아웃 간에 원활하게 전환할 수 있는 적응형 레이아웃 시스템
  • 콘텐츠가 상위 레이아웃 (메타데이터)과 통신하는 메커니즘

개략적으로 다음과 같은 방법으로 Navigation 3을 구현합니다.

  1. 고유한 키가 있는 앱에서 사용자가 탐색할 수 있는 콘텐츠를 정의하고 키를 콘텐츠로 확인하는 함수를 추가합니다. 콘텐츠로 키 확인 을 참고하세요.
  2. 사용자가 앱을 탐색할 때 키가 푸시되고 삭제되는 백 스택을 만듭니다. 백 스택 만들기를 참고하세요.
  3. NavDisplay를 사용하여 앱의 백 스택을 표시합니다. 백 스택이 변경될 때마다 관련 콘텐츠를 표시하도록 UI를 업데이트합니다. 백 스택 표시 를 참고하세요..
  4. NavDisplay장면 전략을 적응형 레이아웃과 다양한 플랫폼을 지원하는 데 필요한 대로 수정합니다.
  5. 대상으로 직접 이동하는 딥 링크를 지원합니다.

AOSP에서 Navigation 3의 전체 소스 코드를 확인할 수 있습니다.

Jetpack Navigation 개선사항

Navigation 3은 다음과 같은 방법으로 원래 Jetpack Navigation API를 개선합니다.

  • Compose와의 더 간단한 통합을 제공합니다.
  • 백 스택을 완전히 제어할 수 있습니다.
  • 백 스택에서 둘 이상의 대상을 동시에 읽을 수 있는 레이아웃을 만들어 창 크기 및 기타 입력의 변경사항에 맞게 조정할 수 있습니다.

공지사항 블로그 게시물에서 Navigation 3의 원칙과 API 디자인 선택사항에 관해 자세히 알아보세요.

코드 샘플

레시피 저장소에는 Navigation 3 빌딩 블록을 사용하여 일반적인 탐색 문제를 해결하는 방법의 예가 포함되어 있습니다.