Uçtan uca ekranı ayarlama

Uçtan uca ekran, daha sürükleyici bir kullanıcı deneyimi sağlamak için uygulamanızın kullanıcı arayüzünü sistem çubuklarının (durum çubuğu, başlık çubuğu ve gezinme çubuğu) arkasında çizmesine olanak tanır. Android 15 (API düzeyi 35) veya sonraki sürümlerin yüklü olduğu cihazları hedefliyorsanız uçtan uca ekran varsayılan olarak zorunlu kılınır.

İçeriğin tüm Android sürümlerinde kenardan kenara doğru şekilde gösterilmesi için aşağıdaki kurulum adımlarını uygulayın. Bu adımlar uygulanmadığı takdirde uygulamanız, sistem çubuklarının arkasında düz renkler çizebilir veya içeriğini, dokunmatik klavye (IME) geçişleriyle eşzamanlı olarak animasyonlu hale getirmeyebilir.

1. Uçtan uca ekranı etkinleştirin

Önceki Android sürümlerinde uçtan uca özelliğini etkinleştirmek için Activity.onCreate() yönteminizde enableEdgeToEdge() işlevini çağırın:

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

Varsayılan olarak enableEdgeToEdge(), 3 düğmeli gezinme modu hariç sistem çubuklarını şeffaf hale getirir. Bu modda ise daha iyi kontrast için gezinme çubuğuna yarı saydam bir katman uygular. Sistem simgelerinin rengi ve yarı saydam katman, sistemin açık veya koyu temasına uyum sağlar.

2. windowSoftInputMode'u yapılandırma

Etkinliğinizin android:windowSoftInputMode="adjustResize" girişinde AndroidManifest.xml simgesini ayarlayın. Bu ayar, uygulamanızın IME ekleri almasına olanak tanır. Böylece, dokunmatik klavye göründüğünde veya kaybolduğunda düzeninizi dolguyla ayarlayabilirsiniz.

<!-- In your AndroidManifest.xml file: -->
<activity
  android:name=".ui.MainActivity"
  android:label="@string/app_name"
  android:windowSoftInputMode="adjustResize"
  android:theme="@style/Theme.MyApplication"
  android:exported="true">
  ...
</activity>

3. İç kısımları kullanarak çakışmaları işleme

Uçtan uca görünüm etkinleştirildikten sonra uygulamanızın bazı içerikleri ve kullanıcı arayüzü öğeleri sistem çubuklarının arkasında kalabilir. Önemli veya etkileşimli öğelerin sistem çubukları tarafından gizlenmesini ya da sistem hareketleriyle çakışmasını önlemek için iç kısımları işlemeniz gerekir.

Yerleştirmeler, ekranın sistem kullanıcı arayüzü veya sistem hareketleriyle kesişen kısımlarını açıklar. Uçtan uca ekran için dikkate alınması gereken başlıca yerleştirme türleri şunlardır:

  • Sistem çubukları yerleşimleri: Sistem çubuklarının görüntülendiği alanları temsil eder. Kullanıcı arayüzünün sistem çubukları tarafından gizlenmesini önlemek için bunları kullanın.
  • Ekran kesimi yerleşimleri: Cihaz ekranında fiziksel bir kesimin (ör. kamera çentiği) bulunduğu alanları gösterir.

Oluşturma bölümünde, cetvelleri, dolgu değiştiricileri veya iç boyut değiştiricileri kullanarak iç kısımları yönetebilirsiniz. Ayrıntılı bilgi için Pencere iç boşlukları hakkında başlıklı makaleyi inceleyin.

İleri düzey konular

Daha gelişmiş uçtan uca kullanım alanları için aşağıdakileri göz önünde bulundurun.

Yoğun içerik modu

Videolar veya haritalar gibi bazı içerikler, sistem çubuklarının gizlendiği tamamen etkileyici bir deneyimden yararlanır. Sistem çubuklarını WindowInsetsControllerCompat kullanarak gizleyebilirsiniz:

val windowInsetsController =
    WindowCompat.getInsetsController(window, window.decorView)

// Hide the system bars.
windowInsetsController.hide(WindowInsetsCompat.Type.systemBars())

// Show the system bars.
windowInsetsController.show(WindowInsetsCompat.Type.systemBars()) For example, use either `Scaffold`,

Sistem çubuğu renkleri ve simgeleri

Uygulamanızın arka planı, uçtan uca geçiş yapıldığında sistem çubuklarının arkasında görünebilir. Bu nedenle, daha iyi kontrast için sistem çubuğu simge renklerini ayarlamanız gerekebilir.

Durum çubuğu simgelerini açık veya koyu olarak değiştirmek için WindowInsetsControllerCompat simgesini kullanın:

// Set status bar icons to dark
WindowCompat.getInsetsController(window, window.decorView)
    .isAppearanceLightStatusBars = true

// Set status bar icons to light
WindowCompat.getInsetsController(window, window.decorView)
    .isAppearanceLightStatusBars = false

Sistem çubuğu koruması

enableEdgeToEdge(), varsayılan olarak şeffaf veya yarı şeffaf sistem çubukları sunsa da bunu özelleştirmeniz gerekebilir. Ne zaman şeffaf, ne zaman yarı şeffaf çubuklar kullanacağınıza karar vermek için Android sistem çubukları tasarım rehberine ve uçtan uca tasarım rehberine bakın.

3 düğmeli gezinme çubuğunu yarı saydam yerine tamamen şeffaf hale getirmek için kontrast zorlamasını devre dışı bırakabilirsiniz:

window.isNavigationBarContrastEnforced = false

Daha fazla bilgi için Sistem çubuğu koruması hakkında başlıklı makaleyi inceleyin.

İletişim kutuları

Tam ekran iletişim kutularını kenardan kenara görüntülemek için iletişim kutusunun onStart() yönteminde WindowCompat.enableEdgeToEdge yöntemini çağırın:

class MyAlertDialogFragment : DialogFragment() {
    override fun onStart(){
        super.onStart()
        dialog?.window?.let { WindowCompat.enableEdgeToEdge(it) }
    }
    ...
}