Chamar enableEdgeToEdge encapsula a lógica necessária para ser realmente
compatível com versões anteriores e, portanto, é a maneira recomendada de configurar uma
tela de ponta a ponta. Consulte a documentação do Compose e das visualizações
em vez deste guia para saber como usar o enableEdgeToEdge
de ponta a ponta.
Embora não seja recomendado, se o app precisar configurar manualmente uma exibição de ponta a ponta, siga estas etapas:
- Chame o método
WindowCompat.setDecorFitsSystemWindows(window, false). - Defina as barras do sistema como transparentes.
- Processar encartes.
Layout do app em tela cheia
Use WindowCompat.setDecorFitsSystemWindows(window, false)
para organizar o app atrás das barras do sistema, como mostrado no exemplo de código
abaixo:
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 criar manualmente um layout de ponta a ponta para o Android 14 e versões anteriores, o app também precisa tornar as barras de sistema transparentes.
Você pode editar o arquivo themes.xml para definir a cor da barra de status e de navegação
como transparente e mudar a cor do ícone da barra de status.
<!-- 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>
Use a API WindowInsetsControllerCompat em vez de
theme.xml para controlar a cor do conteúdo da barra de status. Para fazer isso, use a função
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);
Processar encartes
Por fim, o app precisa processar as margens para que a interface crítica evite as barras de sistema e o corte da tela. Consulte a documentação do Compose e das visualizações para saber como processar encartes.