لینک های خوب برای Nvigation Component
لینک های خوب برای Nvigation Component
برای انتقال اطلاعات بین فرگمنت ها در navigation component دو روش وجود دارد:
1. استفاده از bundle - در این صورت bundle رو به عنوان آرگومان دوم navigate پاس می دهیم اما این روش توصیه نمی شود.
اگر فرگمنتی گلوبال اکشن داشته باشه یعنی از هر فرگمنتی میشه به اون فرگمنت رفت. برای پیاده سازی پاپ آپ منو از طریق این روش دیگه نیازی نیست آی دی آیتم منو و فرگمنت یکی باشه و همچنین نیازی به اتریبیوت menuCategory نیست. فقط توی متد onOptionsItemSelected با توجه به آی دی آیتم کلیک شده به فرگمنت مورد نظر navigate می کنیم.
NavigationUI یکی از فیچرهای Navigation conponent هست که عنوان تولبار (یا همون اکشن بار) رو با تغییر فرگمنت تغییر میده و همچنین فلش Navigate up رو اضافه میکنه (بجز فرگمنت home).
در نویگیشن کامپوننت میشه به ازای هر اکشن بک استک رو مدیریت کرد. یعنی اگر از یک فرگمنت به دو یا سه جای مختلف بریم به ازای هر کدوم میشه بک استک خاصی رو پیاده سازی کرد.
تگ های مورد استفاده برای مدیریت بک استک:
app:popUpTo="@id/startFragment"
app:popUpToInclusive="false"
قبلا برای مدیریت onBackPressed در فرگمنت از روش سنتی استفاده میکردیم! بدین صورت که در اکتیویتی اصلی که host فرگمنت هست، فرگمنت فعلی رو میگرفتیم و بررسی میکردیم کدوم فرگمنت هست و با توجه به آن، دکمه بک مدیریت میشد.
نویگیشن کامپوننت که یکی از زیر مجموعه های لایبرری Jetpack به شمار میره، برای این به وجود اومده که کار با فرگمنت ها رو ساده کنه. عمدتا از نویگیشن کامپوننت در اپ های single activity استفاده میشه.