Ręczne konfigurowanie wyświetlacza od krawędzi do krawędzi
Zadbaj o dobrą organizację dzięki kolekcji
Zapisuj i kategoryzuj treści zgodnie ze swoimi preferencjami.
Aby włączyć wyświetlanie bez ramki w aplikacji, wywołaj funkcję
enableEdgeToEdge.
Powinno to wystarczyć w przypadku większości aplikacji. Z tego przewodnika dowiesz się, jak włączyć tryb od krawędzi do krawędzi, jeśli Twoja aplikacja musi to zrobić bez użycia enableEdgeToEdge.
Gdy aplikacja działa w układzie od krawędzi do krawędzi, musi zmieniać kolory pasków systemowych, aby treść pod nimi była widoczna. Po wykonaniu tego kroku przez aplikację system zajmuje się całą ochroną wizualną interfejsu użytkownika w trybie nawigacji gestami i w trybie przycisków.
Tryb nawigacji gestami: system stosuje dynamiczne dostosowywanie kolorów, w którym zawartość pasków systemowych zmienia kolor w zależności od treści znajdujących się za nimi. W poniższym przykładzie uchwyt na pasku nawigacyjnym zmienia kolor na ciemny, gdy znajduje się nad jasną treścią, a na jasny, gdy znajduje się nad ciemną treścią.
Rysunek 1. Zmiany kolorów w trybie nawigacji przy użyciu gestów.
Tryb przycisku: system stosuje półprzezroczystą zasłonę za paskami systemowymi (w przypadku interfejsu API na poziomie 29 lub wyższym) lub przezroczysty pasek systemowy (w przypadku interfejsu API na poziomie 28 lub niższym).
Rysunek 2. Przezroczysta siatka za paskami systemowymi.
Kolor zawartości paska stanu:określa kolor zawartości paska stanu, np. godziny i ikon.
Rysunek 3. Kolor treści na pasku stanu.
Możesz edytować plik themes.xml, aby ustawić kolor paska nawigacyjnego i opcjonalnie ustawić przezroczystość paska stanu oraz ciemny kolor treści paska stanu.
Możesz używać interfejsu WindowInsetsController API bezpośrednio, ale w miarę możliwości zdecydowanie zalecamy korzystanie z biblioteki pomocy WindowInsetsControllerCompat. Zamiast interfejsu WindowInsetsControllerCompat możesz użyć interfejsu theme.xml API, aby kontrolować kolor treści na pasku stanu. Aby to zrobić, użyj funkcji
setAppearanceLightNavigationBars()
i przekaż wartość true, aby zmienić kolor pierwszego planu nawigacji na jasny, lub false, aby przywrócić domyślny kolor.
Treść strony i umieszczone na niej fragmenty kodu podlegają licencjom opisanym w Licencji na treści. Java i OpenJDK są znakami towarowymi lub zastrzeżonymi znakami towarowymi należącymi do firmy Oracle lub jej podmiotów stowarzyszonych.
Ostatnia aktualizacja: 2025-08-27 UTC.
[[["Łatwo zrozumieć","easyToUnderstand","thumb-up"],["Rozwiązało to mój problem","solvedMyProblem","thumb-up"],["Inne","otherUp","thumb-up"]],[["Brak potrzebnych mi informacji","missingTheInformationINeed","thumb-down"],["Zbyt skomplikowane / zbyt wiele czynności do wykonania","tooComplicatedTooManySteps","thumb-down"],["Nieaktualne treści","outOfDate","thumb-down"],["Problem z tłumaczeniem","translationIssue","thumb-down"],["Problem z przykładami/kodem","samplesCodeIssue","thumb-down"],["Inne","otherDown","thumb-down"]],["Ostatnia aktualizacja: 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```"]]