انیمیشنهای پیشبینانهی بازگشت و سیستم به طور پیشفرض فعال هستند. اگر برنامهی شما رویداد بازگشت را متوقف میکند و شما به حالت پیشبینانهی بازگشت مهاجرت نکردهاید، برنامهی خود را بهروزرسانی کنید تا از APIهای ناوبری بازگشت پشتیبانیشده استفاده کند.
فعال کردن انیمیشنهای پیشفرض سیستم
انیمیشنهای سیستمی بازگشت به خانه، فعالیت متقابل و وظایف متقابل در دستگاههای اندروید ۱۵ و بالاتر برای برنامههایی که به APIهای مدیریت بازگشت پشتیبانیشده مهاجرت کردهاند، در دسترس هستند.
- بازگشت به خانه : کاربر را به صفحه اصلی برمیگرداند.
- فعالیت متقابل : انتقال بین فعالیتهای درون برنامه.
- وظایف متقاطع : انتقال بین وظایف .
این انیمیشنها به طور پیشفرض در اندروید ۱۵ و بالاتر فعال هستند. در دستگاههایی که اندروید ۱۳ یا ۱۴ دارند، کاربران میتوانند آنها را از طریق گزینههای توسعهدهندگان فعال کنند.
برای دریافت انیمیشنهای سیستمی، وابستگی AndroidX Activity خود را به ۱.۶.۰ یا بالاتر بهروزرسانی کنید.
فعال کردن بازگشت پیشبینیکننده با ناوبری نوشتن
برای استفاده از قابلیت پیشبینی بازگشت در Navigation Compose، مطمئن شوید که از کتابخانه navigation-compose نسخه ۲.۸.۰ یا بالاتر استفاده میکنید.
ناوبری، وقتی کاربر صفحه را به عقب میکشد، Compose به طور خودکار بین صفحات محو میشود:
هنگام پیمایش، میتوانید با popEnterTransition و popExitTransition گذارهای سفارشی ایجاد کنید. وقتی این اصلاحکنندهها روی NavHost شما اعمال میشوند، به شما امکان میدهند نحوهی انیمیشن صفحات ورود و خروج را تعریف کنید. میتوانید از آنها برای ایجاد جلوههای متنوعی مانند مقیاسبندی، محو شدن یا کشویی استفاده کنید.
در این مثال، از scaleOut در popExitTransition برای کوچک کردن صفحه نمایش هنگام بازگشت کاربر استفاده میشود. علاوه بر این، پارامتر transformOrigin نقطهای را که انیمیشن تغییر مقیاس در اطراف آن رخ میدهد، تعیین میکند. به طور پیشفرض، این نقطه مرکز صفحه نمایش است ( 0.5f, 0.5f ). میتوانید این مقدار را تنظیم کنید تا تغییر مقیاس از نقطه دیگری شروع شود.
NavHost( navController = navController, startDestination = Home, popExitTransition = { scaleOut( targetScale = 0.9f, transformOrigin = TransformOrigin(pivotFractionX = 0.5f, pivotFractionY = 0.5f) ) }, popEnterTransition = { EnterTransition.None }, modifier = modifier, )
این کد نتیجه زیر را تولید میکند:
popEnterTransition و popExitTransition به طور خاص انیمیشنها را هنگام نمایش پشته پشتی، مثلاً با یک حرکت برگشت، کنترل میکنند. همچنین میتوانید enterTransition و exitTransition برای تعریف انیمیشنها برای ورود و خروج به composableها به طور کلی، نه فقط برای بازگشت پیشبینیکننده، استفاده کنید. اگر فقط enterTransition و exitTransition را تنظیم کنید، آنها هم برای پیمایش معمولی و هم برای نمایش پشته پشتی استفاده میشوند. با این حال، استفاده از popEnterTransition و popExitTransition به شما امکان میدهد انیمیشنهای متمایزی برای پیمایش برگشتی ایجاد کنید.
ادغام با انتقال عناصر مشترک
انتقال عناصر مشترک، ارتباط بصری روان و راحتی بین ترکیبپذیرها با محتوای مشترک فراهم میکند که اغلب برای ناوبری استفاده میشود.
برای استفاده از عناصر مشترک با Navigation Compose، به Predictive back با عناصر مشترک مراجعه کنید.
پشتیبانی از پیشبینی بازگشتی با کامپوننتهای Material Compose
بسیاری از کامپوننتهای موجود در کتابخانه Material Compose به گونهای طراحی شدهاند که به طور یکپارچه با حرکات پیشبینیکننده بازگشت به عقب کار کنند. برای فعال کردن انیمیشنهای پیشبینیکننده بازگشت به عقب در این کامپوننتها، آخرین وابستگی Material3 ( androidx.compose.material3:material3-*:1.3.0 یا بالاتر) را در پروژه خود لحاظ کنید.
اجزای متریال که از انیمیشنهای بازگشتی پیشبینیکننده پشتیبانی میکنند عبارتند از:
-
SearchBar -
ModalBottomSheet -
ModalDrawerSheet/DismissibleDrawerSheet -
ModalNavigationDrawer/DismissibleNavigationDrawer
SearchBar و ModalBottomSheet به طور خودکار با حرکات پیشبینیکنندهی بازگشت، انیمیشن ایجاد میکنند. ModalNavigationDrawer ، ModalDrawerSheet ، DismissibleDrawerSheet و DismissibleNavigationDrawer از شما میخواهند که drawerState را به کامپوننتهای محتوای برگه مربوطهشان ارسال کنید.
انیمیشن پیشبینی حرکت برگشت را آزمایش کنید
اگر هنوز از اندروید ۱۳ یا اندروید ۱۴ استفاده میکنید، میتوانید انیمیشن بازگشت به خانه را آزمایش کنید.
برای تست این انیمیشن، مراحل زیر را دنبال کنید:
- در دستگاه خود، به تنظیمات > سیستم > گزینههای توسعهدهنده بروید.
- انیمیشنهای پیشبینیکنندهی بازگشت را انتخاب کنید.
- برنامهی بهروزرسانیشدهتان را اجرا کنید و با استفاده از ژست حرکتی «بازگشت» (back) آن را در عمل مشاهده کنید.
در اندروید ۱۵ و بالاتر، این ویژگی به طور پیشفرض فعال است.
منابع اضافی
- انیمیشنهای برگشتی پیشبینیکننده را به codelab اضافه کنید
- انیمیشنهای طرحبندی پیشرفته در ویدئوی Compose