동작 탐색 모델은 앱 개발자가 이전에 사용했던 동작과 충돌할 수 있습니다. 그러면 앱 사용자 인터페이스도 조정해야 할 수 있습니다.
뒤로 동작과 충돌
뒤로의 새로운 시스템 동작은 화면 왼쪽 또는 오른쪽 가장자리에서 안쪽으로 스와이프하는 것입니다. 이 동작이 해당 영역의 앱 탐색 요소를 방해할 수 있습니다. 화면 왼쪽 및 오른쪽 가장자리에 있는 요소의 기능을 유지하려면 터치 입력을 수신해야 하는 영역을 시스템에 표시하여 선택적으로 뒤로 동작을 선택 해제하세요. 이렇게 하려면 Android 10에서 도입된 View.setSystemGestureExclusionRects() API에 List<Rect>를 전달하면 됩니다. 이 메서드는 androidx.core:core:1.1.0-dev01부터 ViewCompat에서도 사용할 수 있습니다.
예를 들면 다음과 같습니다.
Kotlin
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 및 Oracle 계열사의 상표 또는 등록 상표입니다.
최종 업데이트: 2025-08-27(UTC)
[[["이해하기 쉬움","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(UTC)"],[],[],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)"]]