Оптимизируйте свои подборки
Сохраняйте и классифицируйте контент в соответствии со своими настройками.
Вы можете включить отображение экрана от края до края в своём приложении, вызвав метод enableEdgeToEdge . Этого должно быть достаточно для большинства приложений. В этом руководстве описывается, как включить отображение экрана от края до края, если вашему приложению это необходимо, без использования enableEdgeToEdge .
При работе в макете «от края до края» вашему приложению необходимо изменить цвета системных панелей, чтобы содержимое под ними было видно. После того, как приложение выполнит этот шаг, система возьмёт на себя всю визуальную защиту пользовательского интерфейса в режиме навигации жестами и в режиме кнопок.
Режим навигации жестами: система применяет динамическую адаптацию цвета, при которой содержимое системных панелей меняет цвет в зависимости от расположенного за ними контента. В следующем примере маркер на панели навигации меняет цвет на тёмный, когда он находится над светлым контентом, и на светлый, когда он находится над тёмным контентом.
Рисунок 1. Изменение цвета в режиме навигации жестами.
Режим кнопки: система применяет полупрозрачную сетку за системными панелями (для уровня API 29 или более поздних версий) или прозрачную системную панель (для уровня API 28 или более ранних версий).
Рисунок 2. Прозрачная сетка за решеткой системы.
Цвет содержимого строки состояния: управляет цветом содержимого строки состояния, например времени и значков.
Рисунок 3. Цвет содержимого строки состояния.
Вы можете отредактировать файл themes.xml , чтобы установить цвет панели навигации и, при желании, сделать строку состояния прозрачной, а цвет ее содержимого — темным.
Вы можете использовать API WindowInsetsController напрямую, но мы настоятельно рекомендуем использовать библиотеку поддержки WindowInsetsControllerCompat везде, где это возможно. Вы можете использовать API WindowInsetsControllerCompat вместо theme.xml для управления цветом содержимого строки состояния. Для этого используйте функцию setAppearanceLightNavigationBars() , передав значение true для изменения цвета переднего плана навигации на светлый или false для возврата к цвету по умолчанию.
Контент и образцы кода на этой странице предоставлены по лицензиям. Java и OpenJDK – это зарегистрированные товарные знаки корпорации 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,["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```"]]