Android Navigation
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 مبدا و مقصد یکتا باشد. در لیست ها باید به این نکته توجه کنید.
+ نوشته شده در پنجشنبه ۲۱ فروردین ۱۳۹۹ ساعت 22:5 توسط No One