• dependence زیر را به buildscript اضافه کنید.

android.arch.navigation:navigation-safe-args-gradle-plugin:1.0.0

  • plugin زیر را اضافه کنید.

androidx.navigation.safeargs

  • dependence های زیر را اضافه کنید.

androidx.navigation:navigation-fragment-ktx:2.3.0-alpha04
androidx.navigation:navigation-ui-ktx:2.3.0-alpha04
androidx.navigation:navigation-dynamic-features-fragment:2.3.0-alpha04

  • یک resource با تایپ Navigation بسازید.
  • fragment های خود را به فایل فوق اضافه کنید.
  • برای ارتباط بین fragment ها آنها را به هم وصل کنید.
  • برای ارسال داده به fragment ها برای آنها  argument مشخص کنید.
  • برای تعیین عملکرد بازگشت fragment ها popup Behavior را مقدار دهی کنید.
  • یک layout بسازید و یک fragment به آن اضافه کنید.
  • در fragment فوق defaultNavHost را برابر با true قرار دهید.
  • همچنین navGraph را با آدرس فایل navigation خود مقدار دهی کنید.
  • در manifest به تگ activity خود تگ nav-graph را اضافه کنید و آدرس فایل navigation خود را وارد کنید.
  • برای دسترسی به navigation باید یک شی از NavController در fragment های خود ایجاد کنید.

lateinit var navigator: NavController

  • برای بقدار دهی شی فوق در onCreateView با دستور زیر navigation را بگیرید.

navigator = Navigation.findNavController(view)

  • برای جابجایی بین فرکمنت‌ها از شی NavController متد navigate را باید فراخوانی کنیم.
  • برای جابجایی با انیمیشن بین فرگمنت‌ها باید به view های خود در lauout ها transitionName بدهید و view‌ را با نام آن با استفاده از شی FragmentNavigatorExtras به متد navigate بدهیم.
  • توجه داشته باشید که باید یک view با همان transitionName در view مقصد وجود داشته باشد.
  • نام transitionName باید در layout مبدا و مقصد یکتا باشد. در لیست ها باید به این نکته توجه کنید.