Uçtan uca ekran, daha etkileyici bir kullanıcı deneyimi sunmak 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 oluşturmasına olanak tanır. Android 15 (API düzeyi 35) veya sonraki sürümleri çalıştıran cihazları hedefliyorsanız uçtan uca görünüm 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. 3 düğmeli gezinme modunda 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 çizilebilir. Önemli veya etkileşimli öğelerin sistem çubukları tarafından gizlenmesini ya da sistem hareketleriyle çakışmasını önlemek için yerleştirmeleri yönetmeniz 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ı gösterir. 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.
Compose'da, iç kısımları cetvelleri, dolgu değiştiricileri veya iç boyut değiştiricileri kullanarak yönetebilirsiniz. Ayrıntılı bilgi için Pencere yerleştirmeleri hakkında başlıklı makaleyi inceleyin.
Gelişmiş 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 işlevini çağırın:
class MyAlertDialogFragment : DialogFragment() {
override fun onStart(){
super.onStart()
dialog?.window?.let { WindowCompat.enableEdgeToEdge(it) }
}
...
}