با مجموعهها، منظم بمانید
ذخیره و طبقهبندی محتوا براساس اولویتهای شما.
با شروع Android 10 (سطح API 29)، سیستم Android از ناوبری کاملاً مبتنی بر اشاره پشتیبانی می کند. دو کار وجود دارد که توسعه دهندگان برنامه باید انجام دهند تا مطمئن شوند برنامه هایشان با این ویژگی سازگار است:
محتوای برنامه را از لبه به لبه گسترش دهید.
ژستهای متضاد برنامه را مدیریت کنید.
علاوه بر این، Android 13 (سطح API 33) یک حرکت پیشبینی کننده برگشت را برای دستگاههای اندرویدی مانند تلفنها، صفحهنمایشهای بزرگ و تاشوها معرفی میکند که بخشی از یک نسخه چند ساله است. توسعه دهندگان برنامه می توانند اقداماتی را انجام دهند تا اطمینان حاصل شود که برنامه های آنها از ژست برگشتی پیش بینی کننده پشتیبانی می کند.
محتوای برنامه لبه به لبه را ارائه دهید
برای استفاده از فضای صفحه نمایش اضافی که توسط نوار ناوبری شناور در دسترس است، باید تغییرات خاصی را در برنامه خود پیکربندی کنید.
مدل پیمایش اشارهای ممکن است با حرکاتی که قبلاً توسط توسعهدهندگان برنامه استفاده میشد تضاد داشته باشد. در نتیجه ممکن است لازم باشد تنظیماتی را در رابط کاربری برنامه خود انجام دهید.
درگیری با حرکات پشت
ژست سیستم جدید برای برگشت، یک تند کشیدن به سمت داخل از لبه چپ یا راست صفحه نمایش است. این ممکن است با عناصر ناوبری برنامه در آن مناطق تداخل داشته باشد. برای حفظ عملکرد عناصر در لبههای چپ و راست صفحه، با مشخص کردن مناطقی که نیاز به دریافت ورودی لمسی به سیستم دارند، به طور انتخابی از ژست عقب خودداری کنید. شما می توانید این کار را با ارسال List<Rect> به View.setSystemGestureExclusionRects() API معرفی شده در Android 10 انجام دهید. این روش همچنین در ViewCompat از androidx.core:core:1.1.0-dev01 موجود است.
به عنوان مثال:
کاتلین
varexclusionRects=listOf(rect1,rect2,rect3)funonLayout(changedCanvas:Boolean,left:Int,top:Int,right:Int,bottom:Int){// Update rect bounds and the exclusionRects listsetSystemGestureExclusionRects(exclusionRects)}funonDraw(canvas:Canvas){// Update rect bounds and the exclusionRects listsetSystemGestureExclusionRects(exclusionRects)}
جاوا
List<Rect>exclusionRects;publicvoidonLayout(booleanchangedCanvas,intleft,inttop,intright,intbottom){// Update rect bounds and the exclusionRects listsetSystemGestureExclusionRects(exclusionRects);}publicvoidonDraw(Canvascanvas){// Update rect bounds and the exclusionRects listsetSystemGestureExclusionRects(exclusionRects);}
درگیری با حرکات خانه یا تعویض سریع
حرکات سیستمی جدید برای خانه و سوئیچ سریع هر دو شامل کشیدن انگشت در پایین صفحه در فضایی است که قبلاً توسط نوار ناوبری اشغال شده بود. برنامهها نمیتوانند از این حرکات انصراف دهند، همانطور که با اشاره عقب میتوانند.
بازیها و سایر برنامههایی که سلسلهمراتب نمایش ندارند، اغلب از کاربر میخواهند که انگشت خود را در نزدیکی مناطق اشارهای سیستم بکشد. در این موارد، بازیها میتوانند از Window.setSystemGestureExclusionRects() برای حذف مناطقی که با مناطق رزرو شده برای حرکات سیستم همپوشانی دارند، استفاده کنند. بازیها باید مطمئن شوند که فقط در مواقع ضروری، مانند حین بازی، این مناطق را حذف میکنند.
اگر یک بازی از کاربر بخواهد که انگشت خود را نزدیک ناحیه اشاره خانه بکشد، برنامه میتواند درخواست کند که در حالت همهجانبه قرار گیرد. این ژستهای حرکتی سیستم را در زمانی که کاربر در حال تعامل با بازی است غیرفعال میکند، اما به کاربر اجازه میدهد با کشیدن انگشت از پایین صفحه، ژستهای حرکتی سیستم را دوباره فعال کند.
برنامه خود را بهروزرسانی کنید تا از حرکت پیشگویانه برگشت پشتیبانی کند
Android 13 (سطح API 33) یک حرکت پیشبینی کننده برگشت را برای دستگاههای Android مانند تلفنها، صفحهنمایشهای بزرگ و تاشوها معرفی میکند. حرکت پیشگویانه برگشت بخشی از یک نسخه چند ساله است. هنگامی که این ویژگی به طور کامل اجرا می شود، به کاربران اجازه می دهد تا قبل از اینکه به طور کامل آن را کامل کنند، مقصد یا نتایج دیگر حرکت برگشتی را پیش نمایش کنند، و به آنها اجازه می دهد تصمیم بگیرند که آیا به نمای فعلی ادامه دهند یا بمانند.
محتوا و نمونه کدها در این صفحه مشمول پروانههای توصیفشده در پروانه محتوا هستند. جاوا و OpenJDK علامتهای تجاری یا علامتهای تجاری ثبتشده Oracle و/یا وابستههای آن هستند.
تاریخ آخرین بهروزرسانی 2025-08-27 بهوقت ساعت هماهنگ جهانی.
[[["درک آسان","easyToUnderstand","thumb-up"],["مشکلم را برطرف کرد","solvedMyProblem","thumb-up"],["غیره","otherUp","thumb-up"]],[["اطلاعاتی که نیاز دارم وجود ندارد","missingTheInformationINeed","thumb-down"],["بیشازحد پیچیده/ مراحل بسیار زیاد","tooComplicatedTooManySteps","thumb-down"],["قدیمی","outOfDate","thumb-down"],["مشکل ترجمه","translationIssue","thumb-down"],["مشکل کد / نمونهها","samplesCodeIssue","thumb-down"],["غیره","otherDown","thumb-down"]],["تاریخ آخرین بهروزرسانی 2025-08-27 بهوقت ساعت هماهنگ جهانی."],[],[],null,["# Ensure compatibility with gesture navigation\n\nBeginning with Android 10 (API level 29), the Android system supports fully\ngesture-based navigation. There are two things app developers must do to ensure\ntheir apps are compatible with this feature:\n\n- Extend app content from edge to edge.\n- Handle conflicting app gestures.\n\nIn addition, Android 13 (API level 33) introduces a\n[predictive back gesture](/guide/navigation/predictive-back-gesture) for Android\ndevices such as phones, large screens, and foldables that is part of a multiyear\nrelease. App developers can take steps to ensure that their apps support the\npredictive back gesture.\n\nProvide edge-to-edge app content\n--------------------------------\n\nTo take advantage of the additional screen space made available by the floating\nnavigation bar, you need to configure certain changes in your app.\n\nSee [Display content edge-to-edge in your app](/training/gestures/edge-to-edge)\nfor details.\n\nHandle conflicting app gestures\n-------------------------------\n\nThe gesture navigation model might conflict with gestures that were previously\nused by app developers. You might need to make adjustments to your app's user\ninterface as a result.\n\n### Conflicts with back gestures\n\nThe new system gesture for back is an inward swipe from either the left or the\nright edge of the screen. This might interfere with app navigation elements in\nthose areas. To maintain functionality of elements on the left and right edges\nof the screen, opt out of the back gesture selectively by indicating to the\nsystem which regions need to receive touch input. You can do this by passing a\n`List\u003cRect\u003e` to the [`View.setSystemGestureExclusionRects()`](/reference/android/view/View#setSystemGestureExclusionRects(java.util.List%3Candroid.graphics.Rect%3E))\nAPI introduced in Android 10. This method is also available in [`ViewCompat`](/reference/androidx/core/view/ViewCompat) as of\n`androidx.core:core:1.1.0-dev01`.\n\nFor example: \n\n### Kotlin\n\n```kotlin\nvar exclusionRects = listOf(rect1, rect2, rect3)\n\nfun onLayout(\n changedCanvas: Boolean, left: Int, top: Int, right: Int, bottom: Int) {\n // Update rect bounds and the exclusionRects list\n setSystemGestureExclusionRects(exclusionRects)\n}\n\nfun onDraw(canvas: Canvas) {\n // Update rect bounds and the exclusionRects list\n setSystemGestureExclusionRects(exclusionRects)\n}\n```\n\n### Java\n\n```java\nList\u003cRect\u003e exclusionRects;\n\npublic void onLayout(\n boolean changedCanvas, int left, int top, int right, int bottom) {\n // Update rect bounds and the exclusionRects list\n setSystemGestureExclusionRects(exclusionRects);\n}\n\npublic void onDraw(Canvas canvas) {\n // Update rect bounds and the exclusionRects list\n setSystemGestureExclusionRects(exclusionRects);\n}\n```\n| **Note:** The `DrawerLayout` and `SeekBar` components support automatic opt-out behavior out of the box.\n\n### Conflicts with home or quick-switch gestures\n\nThe new system gestures for home and quick switch both involve swipes at the\nbottom of the screen in the space previously occupied by the nav bar. Apps\ncan't opt out of these gestures as they can with the back gesture.\n\nTo mitigate this problem, Android 10 introduces the\n[`WindowInsets.getMandatorySystemGestureInsets()`](/reference/android/view/WindowInsets.Type#mandatorySystemGestures())\nAPI, which informs apps of the touch recognition thresholds.\n\n### Games and other non-View apps\n\nGames and other apps that don't have a view hierarchy often require the user to\nswipe near the system gesture areas. In those cases, games can use\n[`Window.setSystemGestureExclusionRects()`](/reference/android/view/Window#setSystemGestureExclusionRects(java.util.List%3Candroid.graphics.Rect%3E))\nto exclude areas that overlap with areas reserved for system gestures. Games\nmust make sure to only exclude these areas when necessary, such as during\ngameplay.\n\nIf a game requires the user to swipe near the home gesture area, the app can\nrequest to be laid out in [immersive mode](/training/system-ui/immersive#immersive). This disables the system gestures\nwhile the user is interacting with the game, but lets the user re-enable\nthe system gestures by swiping from the bottom of the screen.\n\nUpdate your app to support the predictive back gesture\n------------------------------------------------------\n\nAndroid 13 (API level 33) introduces a predictive back gesture for Android\ndevices such as phones, large screens, and foldables. The predictive back\ngesture is part of a multiyear release. When fully implemented, this feature\nlets users preview the destination or other result of a back gesture before\nthey fully complete it, allowing them to decide whether to continue or stay in\nthe current view.\n\nSee\n[Add support for the predictive back gesture](/guide/navigation/predictive-back-gesture)\nfor details.\n\nAdditional resources\n--------------------\n\nTo learn more about gesture navigation, see the following:\n\n### Blog posts\n\n- [Gesture Navigation: handling visual overlaps (II)](https://medium.com/androiddevelopers/gesture-navigation-handling-visual-overlaps-4aed565c134c)\n\n### Videos\n\n- [Android 10: Gestural navigation](https://www.youtube.com/watch?v=Ljtz7T8R_Hk)\n- [Dark theme \\& gesture navigation (Google I/O '19)](https://www.youtube.com/watch?v=OCHEjeLC_UY)"]]