با مجموعهها، منظم بمانید
ذخیره و طبقهبندی محتوا براساس اولویتهای شما.
با فراخوانی enableEdgeToEdge میتوانید صفحه نمایش لبه به لبه را در برنامه خود فعال کنید. این باید برای اکثر برنامه ها کافی باشد. اگر برنامه شما نیاز به انجام این کار بدون استفاده از enableEdgeToEdge داشته باشد، این راهنما نحوه فعال کردن لبه به لبه را توضیح میدهد.
هنگامی که در یک طرح بندی لبه به لبه کار می کنید، برنامه شما باید رنگ نوارهای سیستم را تغییر دهد تا محتوای زیر آن قابل مشاهده باشد. پس از اینکه برنامه شما این مرحله را انجام داد، سیستم تمام حفاظت بصری رابط کاربری را در حالت ناوبری اشاره ای و در حالت دکمه انجام می دهد.
حالت ناوبری اشاره ای: سیستم از سازگاری رنگ پویا استفاده می کند که در آن محتویات نوارهای سیستم بر اساس محتوای پشت آن ها تغییر رنگ می دهند. در مثال زیر، دسته در نوار پیمایش زمانی که بالای محتوای روشن باشد به رنگ تیره و زمانی که بالای محتوای تیره باشد به رنگ روشن تغییر میکند.
شکل 1. تغییر رنگ در حالت ناوبری حرکتی.
حالت دکمه: سیستم یک خط شفاف در پشت میلههای سیستم (برای سطح API 29 یا بالاتر) یا یک نوار سیستم شفاف (برای سطح API 28 یا قبلتر) اعمال میکند.
شکل 2. ضایعات شفاف پشت میله های سیستم.
رنگ محتوای نوار وضعیت: رنگ محتوای نوار وضعیت، مانند زمان و نمادها را کنترل می کند.
شکل 3. رنگ محتوای نوار وضعیت.
می توانید فایل themes.xml را ویرایش کنید تا رنگ نوار پیمایش را تنظیم کنید و به صورت اختیاری نوار وضعیت را شفاف و رنگ محتوای نوار وضعیت را تیره کنید.
میتوانید مستقیماً از WindowInsetsController API استفاده کنید، اما ما اکیداً توصیه میکنیم در صورت امکان از کتابخانه پشتیبانی WindowInsetsControllerCompat استفاده کنید. برای کنترل رنگ محتوای نوار وضعیت میتوانید به جای theme.xml از WindowInsetsControllerCompat API استفاده کنید. برای انجام این کار، از تابع setAppearanceLightNavigationBars() استفاده کنید true برای تغییر رنگ پیش زمینه ناوبری به رنگ روشن یا false برای برگرداندن به رنگ پیش فرض.
محتوا و نمونه کدها در این صفحه مشمول پروانههای توصیفشده در پروانه محتوا هستند. جاوا و 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,["You can enable the edge-to-edge display in your app by calling\n[`enableEdgeToEdge`](/reference/androidx/activity/ComponentActivity#(androidx.activity.ComponentActivity).enableEdgeToEdge(androidx.activity.SystemBarStyle,androidx.activity.SystemBarStyle)).\nThis should be sufficient for most apps. This guide describes how to enable\nedge-to-edge if your app needs to do so without using `enableEdgeToEdge`.\n\nLay out your app in full screen\n\nUse [`WindowCompat.setDecorFitsSystemWindows(window,\nfalse)`](/reference/androidx/core/view/WindowCompat#setDecorFitsSystemWindows(android.view.Window,%20boolean))\nto lay out your app behind the system bars, as shown in the following code\nexample: \n\nKotlin \n\n```kotlin\noverride fun onCreate(savedInstanceState: Bundle?) {\n super.onCreate(savedInstanceState)\n WindowCompat.setDecorFitsSystemWindows(window, false)\n}\n```\n\nJava \n\n```java\n@Override\npublic void onCreate(Bundle savedInstanceState) {\n super.onCreate(savedInstanceState);\n WindowCompat.setDecorFitsSystemWindows(getWindow(), false);\n}\n```\n\nChange the color of the system bars\n\nWhen operating in an edge-to-edge layout, your app needs to change the colors of\nthe system bars to let the content underneath be visible. After your app\nperforms this step, the system handles all visual protection of the user\ninterface in gesture navigation mode and in button mode.\n\n- **Gesture navigation mode:** the system applies dynamic color adaptation in which the contents of the system bars change color based on the content behind them. In the following example, the handle in the navigation bar changes to a dark color when it's above light content and to a light color when it's above dark content.\n\n**Figure 1.** Color changes in gesture navigation mode.\n\n- **Button mode:** the system applies a translucent [scrim](https://m2.material.io/design/environment/surfaces.html#attributes) behind the system bars (for API level 29 or later) or a transparent system bar (for API level 28 or earlier).\n\n**Figure 2.** Translucent scrim behind system bars.\n\n- **Status bar content color:** controls the color of status bar content, such as the time and icons.\n\n**Figure 3.** Status bar content color.\n\nYou can edit the `themes.xml` file to set the color of the navigation bar and,\noptionally, to set the status bar as transparent and status bar content color as\ndark. \n\n \u003c!-- values-v29/themes.xml --\u003e\n \u003cstyle name=\"Theme.MyApp\"\u003e\n \u003citem name=\"android:navigationBarColor\"\u003e\n @android:color/transparent\n \u003c/item\u003e\n\n \u003c!-- Optional: set to transparent if your app is drawing behind the status bar. --\u003e\n \u003citem name=\"android:statusBarColor\"\u003e\n @android:color/transparent\n \u003c/item\u003e\n\n \u003c!-- Optional: set for a light status bar with dark content. --\u003e\n \u003citem name=\"android:windowLightStatusBar\"\u003e\n true\n \u003c/item\u003e\n \u003c/style\u003e\n\n| **Note:** If you prefer to disable automatic content protection on Android 10 (API level 29) or later, set [`android:enforceNavigationBarContrast`](/reference/android/view/Window#isNavigationBarContrastEnforced()), [`android:enforceStatusBarContrast`](/reference/android/view/Window#isStatusBarContrastEnforced()), or both to `false` in your theme.\n\nYou can use the\n[`WindowInsetsController`](/reference/android/view/WindowInsetsController) API\ndirectly, but we strongly recommend using the Support Library\n[`WindowInsetsControllerCompat`](/reference/androidx/core/view/WindowInsetsControllerCompat)\nwhere possible. You can use the `WindowInsetsControllerCompat` API instead of\n`theme.xml` to control the status bar's content color. To do so, use the\n[`setAppearanceLightNavigationBars()`](/reference/androidx/core/view/WindowInsetsControllerCompat#setAppearanceLightNavigationBars(boolean))\nfunction, passing in `true` to change the foreground color of the navigation to\na light color or `false` to revert to the default color. \n\nKotlin \n\n```kotlin\nval windowInsetsController =\n ViewCompat.getWindowInsetsController(window.decorView)\n\nwindowInsetsController?.isAppearanceLightNavigationBars = true\n```\n\nJava \n\n```java\nWindowInsetsControllerCompat windowInsetsController =\n ViewCompat.getWindowInsetsController(getWindow().getDecorView());\nif (windowInsetsController == null) {\n return;\n}\n\nwindowInsetsController.setAppearanceLightNavigationBars(true);\n```"]]