Sistem çubuğu koruması hakkında

Uygulamanız SDK 35 veya sonraki sürümleri hedeflediğinde uçtan uca ekran zorunlu kılınır. Sistem durum çubuğu ve hareketle gezinme çubukları şeffaf, üç düğmeli gezinme çubuğu ise yarı saydamdır. Bunu geriye dönük uyumlu hale getirmek için enableEdgeToEdge yöntemini çağırın.

Ancak sistem varsayılanları tüm kullanım alanları için uygun olmayabilir. Şeffaf veya yarı şeffaf sistem çubuklarının ne zaman kullanılacağı hakkında genel bilgi için Android sistem çubukları tasarım kılavuzu ve uçtan uca tasarım kılavuzuna bakın.

Şeffaf sistem çubukları oluşturma

Android 15 veya sonraki sürümleri hedefleyerek ya da önceki sürümler için varsayılan bağımsız değişkenlerle enableEdgeToEdge() yöntemini çağırarak şeffaf bir hareketle gezinme çubuğu oluşturun. Üç düğmeli gezinme çubuğu için Window.setNavigationBarContrastEnforced değerini false olarak ayarlayın. Aksi takdirde yarı saydam bir perde uygulanır.

Yarı saydam sistem çubukları oluşturma

Yarı saydam bir durum çubuğu oluşturmak için ana içerikle çakışan ve iç kısımların kapladığı alanda bir gradyan çizen özel bir composable oluşturun.

class SystemBarProtectionSnippets : ComponentActivity() {

    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)

        // enableEdgeToEdge sets window.isNavigationBarContrastEnforced = true
        // which is used to add a translucent scrim to three-button navigation
        enableEdgeToEdge()

        setContent {
            MyTheme {
                // Main content
                MyContent()

                // After drawing main content, draw status bar protection
                StatusBarProtection()
            }
        }
    }
}

@Composable
private fun StatusBarProtection(
    color: Color = MaterialTheme.colorScheme.surfaceContainer,
) {
    Spacer(
        modifier = Modifier
            .fillMaxWidth()
            .height(
                with(LocalDensity.current) {
                    (WindowInsets.statusBars.getTop(this) * 1.2f).toDp()
                }
            )
            .background(
                brush = Brush.verticalGradient(
                    colors = listOf(
                        color.copy(alpha = 1f),
                        color.copy(alpha = 0.8f),
                        Color.Transparent
                    )
                )
            )
    )
}

Şekil 1. Yarı saydam bir durum çubuğu.

Uyarlanabilir uygulamalar için Uçtan uca tasarım bölümünde gösterildiği gibi her bölmenin renkleriyle eşleşen özel bir composable ekleyin. Yarı saydam bir gezinme çubuğu oluşturmak için Window.setNavigationBarContrastEnforced değerini true olarak ayarlayın.