Chamar enableEdgeToEdge
encapsula a lógica necessária para ser verdadeiramente compatível com versões anteriores e, portanto, é a maneira recomendada de configurar uma exibição de ponta a ponta. Consulte a documentação do Compose e do Views
em vez deste guia para saber como usar o enableEdgeToEdge
de ponta a ponta de forma moderna.
Embora não seja recomendado, se o app precisar configurar manualmente uma tela de ponta a ponta, siga estas etapas:
- Chame o método
WindowCompat.setDecorFitsSystemWindows(window, false)
. - Defina as barras de sistema como transparentes.
- Processar encartes.
Posicionar o app em tela cheia
Use WindowCompat.setDecorFitsSystemWindows(window, false)
para dispor seu app atrás das barras de sistema, conforme mostrado no exemplo de código
a seguir:
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 de 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 isso, use a função
setAppearanceLightNavigationBars()
e transmita true
para mudar a cor de primeiro plano da navegação para
uma cor clara ou false
para reverter à 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, seu app precisa processar encartes para que a interface crítica evite as barras de sistema e o corte da tela. Consulte a documentação do Compose e do Views para saber como processar encartes.