پیشبینی به عقب، یک ویژگی پیمایش اشارهای، به کاربران اجازه میدهد پیشنمایش جایی که کشیدن انگشت به عقب آنها را میبرد، مشاهده کنند. Back Predictive به طور یکپارچه با Compose ادغام می شود تا تجربه ناوبری برنامه شما را افزایش دهد. کاربران هنگام بازگشت به داخل برنامه شما از انتقال روان تر و شهودی تر لذت می برند. شکل 1 نشان می دهد که چگونه این کار در برنامه نمونه SociaLite کار می کند.
این راهنما نحوه انجام کارهای زیر را با پیشبینی بازگشت توضیح میدهد:
- ژست برگشتی پیشبینیکننده را انتخاب کنید
- انیمیشن های پیش فرض سیستم را فعال کنید
- بازگشت پیش بینی را با Navigation Compose فعال کنید
- ادغام با انتقال عناصر مشترک
- پشتیبان پیشگویانه را با اجزای Material Compose پشتیبانی کنید
- با
PredictiveBackHandler
به پیشرفت دستی دسترسی پیدا کنید - انیمیشن ژستهای برگشتی پیشبینیکننده را آزمایش کنید
ژست برگشتی پیشبینیکننده را انتخاب کنید
برای فعال کردن انیمیشنهای پیشبینیکننده پیشبینی، باید برای پشتیبانی از حرکت پیشبینیکننده برگشت شرکت کنید. برای شرکت کردن، android:enableOnBackInvokedCallback="true
" را به تگ <application>
یا تگ های <activity>
فردی در فایل AndroidManifest.xml
خود اضافه کنید.
انیمیشن های پیش فرض سیستم را فعال کنید
انیمیشنهای سیستم بازگشت به خانه، فعالیت متقابل، و متقابل در دستگاههای Android 15 و جدیدتر برای برنامههایی که به APIهای پشتیبان پشتیبانی شده منتقل شدهاند در دسترس هستند.
- بازگشت به خانه : کاربر را به صفحه اصلی برمیگرداند.
- فعالیت متقابل : انتقال بین فعالیتهای درون برنامه.
- وظیفه متقابل : انتقال بین وظایف .
این انیمیشن ها به صورت پیش فرض در اندروید 15 و بالاتر فعال هستند. در دستگاههای دارای Android 13 یا 14، کاربران میتوانند آنها را از طریق گزینههای Developer فعال کنند.
برای دریافت انیمیشن های سیستم، وابستگی AndroidX Activity
خود را به 1.6.0 یا بالاتر به روز کنید.
بازگشت پیش بینی را با Navigation Compose فعال کنید
برای استفاده از پیشبینیکننده در Navigation Compose، مطمئن شوید که از کتابخانه navigation-compose
2.8.0 یا بالاتر استفاده میکنید.
وقتی کاربر به عقب میکشد، «نوشتن پیمایش» بهطور خودکار بین صفحهها محو میشود:
هنگام پیمایش، میتوانید انتقالهای سفارشی را با 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، به پیشبینیکننده با عناصر مشترک مراجعه کنید.
پشتیبان پیشگویانه را با اجزای 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
را به محتوای برگه مربوطه ارسال کنید.
با PredictiveBackHandler
به پیشرفت دستی دسترسی پیدا کنید
PredictiveBackHandler
[5] قابل نوشتن در Jetpack Compose به شما امکان می دهد ژست عقب را متوقف کنید و به پیشرفت آن دسترسی داشته باشید. میتوانید به ژست برگشتی کاربر در زمان واقعی واکنش نشان دهید و انیمیشنها یا رفتارهای سفارشی را بر اساس میزان سوایپ کاربر ایجاد کنید.
برای استفاده از PredictiveBackHandler
، مطمئن شوید که از androidx.activity:activity:1.6.0
یا بالاتر استفاده می کنید.
PredictiveBackHandler
یک Flow<BackEventCompat>
ارائه میکند که رویدادهایی را منتشر میکند که نشاندهنده پیشرفت حرکت برگشتی است. هر رویداد حاوی اطلاعاتی مانند:
-
progress
: یک مقدار شناور بین 0 و 1 که نشان دهنده پیشرفت حرکت برگشتی است (0 = اشاره شروع شد، 1 = حرکت کامل شد). -
touchX
وtouchY
: مختصات X و Y رویداد لمسی.
قطعه زیر استفاده اساسی از PredictiveBackHandler
را نشان می دهد:
PredictiveBackHandler(true) { progress: Flow<BackEventCompat> -> // code for gesture back started try { progress.collect { backEvent -> // code for progress boxScale = 1F - (1F * backEvent.progress) } // code for completion boxScale = 0F } catch (e: CancellationException) { // code for cancellation boxScale = 1F } }
مثال: ادغام با کشوی ناوبری
این مثال نشان میدهد که چگونه میتوان یک انیمیشن درون برنامهای سفارشی را با استفاده از PredictiveBackHandler
پیادهسازی کرد تا تعاملی صاف با کشوی پیمایش در پاسخ به حرکات برگشتی در JetLagged ایجاد شود:
در این مثال، PredictiveBackHandler
برای موارد زیر استفاده می شود:
- پیشرفت حرکت ژست عقب را پیگیری کنید.
-
translationX
کشو را بر اساس پیشرفت حرکت بهروزرسانی کنید. - از
velocityTracker
برای باز کردن یا بستن هموار کشو بر اساس سرعت حرکت هنگام تکمیل یا لغو حرکت استفاده کنید.
انیمیشن ژستهای برگشتی پیشبینیکننده را آزمایش کنید
اگر همچنان از اندروید 13 یا اندروید 14 استفاده می کنید، می توانید انیمیشن بازگشت به خانه را تست کنید.
برای تست این انیمیشن مراحل زیر را دنبال کنید:
- در دستگاه خود، به تنظیمات > سیستم > گزینههای برنامهنویس بروید.
- انیمیشنهای برگشتی پیشبینیکننده را انتخاب کنید.
- برنامه بهروزرسانیشدهتان را راهاندازی کنید و از ژست برگشتی برای مشاهده آن در عمل استفاده کنید.
در اندروید 15 به بعد، این ویژگی به طور پیش فرض فعال است.
منابع اضافی
- اضافه کردن پیشبینیکننده انیمیشنهای پیشبینیکننده Codelab
- انیمیشن های چیدمان پیشرفته در Compose video