É possível ativar a exibição de ponta a ponta no app chamando
enableEdgeToEdge
Isso é suficiente para a maioria dos apps. Neste guia, descrevemos como ativar
de ponta a ponta, se o app precisar fazer isso sem usar enableEdgeToEdge
.
Colocar o app em tela cheia
Usar WindowCompat.setDecorFitsSystemWindows(window,
false)
para posicionar o app atrás das barras do sistema, conforme mostrado no código a seguir
exemplo:
Kotlin
override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) WindowCompat.setDecorFitsSystemWindows(window, false) }
Java
@Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); WindowCompat.setDecorFitsSystemWindows(getWindow(), false); }
Mudar a cor das barras do sistema
Ao operar em um layout de ponta a ponta, seu app precisa mudar as cores do as barras do sistema para permitir que o conteúdo abaixo fique visível. Depois do app executar essa etapa, o sistema cuida de toda a proteção visual do usuário no modo de navegação por gestos e no modo de botão.
- Modo de navegação por gestos:o sistema aplica a adaptação dinâmica de cores ao o conteúdo das barras do sistema muda de cor com base no conteúdo atrás para resolvê-los com rapidez. No exemplo a seguir, o identificador na barra de navegação muda para uma cor escura quando está acima do conteúdo claro e para uma cor clara quando está acima conteúdo escuro.
- Modo de botão:o sistema aplica uma cor translúcida scrim (em inglês) atrás das barras de sistema (para API de nível 29 ou posterior) ou um sistema transparente (para API de nível 28 ou anterior).
- Cor do conteúdo da barra de status:controla a cor do conteúdo da barra de status, como como hora e ícones.
Você pode editar o arquivo themes.xml
para definir a cor da barra de navegação.
opcionalmente, para definir a barra de status como transparente e a cor do conteúdo da barra de status como
escurecer.
<!-- values-v29/themes.xml -->
<style name="Theme.MyApp">
<item name="android:navigationBarColor">
@android:color/transparent
</item>
<!-- Optional: set to transparent if your app is drawing behind the status bar. -->
<item name="android:statusBarColor">
@android:color/transparent
</item>
<!-- Optional: set for a light status bar with dark content. -->
<item name="android:windowLightStatusBar">
true
</item>
</style>
Você pode usar o
API WindowInsetsController
mas recomendamos o uso da Biblioteca de Suporte
WindowInsetsControllerCompat
sempre que possível. É possível usar a API WindowInsetsControllerCompat
em vez
theme.xml
para controlar a cor do conteúdo da barra de status. Para isso, use o método
setAppearanceLightNavigationBars()
, transmitindo true
para mudar a cor de primeiro plano da navegação para
uma cor clara ou false
para reverter para a cor padrão.
Kotlin
val windowInsetsController = ViewCompat.getWindowInsetsController(window.decorView) windowInsetsController?.isAppearanceLightNavigationBars = true
Java
WindowInsetsControllerCompat windowInsetsController = ViewCompat.getWindowInsetsController(getWindow().getDecorView()); if (windowInsetsController == null) { return; } windowInsetsController.setAppearanceLightNavigationBars(true);