Ekran kesimi, bazı cihazlarda ekran yüzeyine uzanan bir alandır. Bu sayede cihazın ön tarafında önemli sensörler için yer açılırken kenardan kenara bir deneyim sunulur.
Android, Android 9 (API düzeyi 28) ve sonraki sürümleri çalıştıran cihazlarda ekran kesiklerini destekler. Ancak cihaz üreticileri, Android 8.1 veya daha eski sürümlerin yüklü olduğu cihazlarda da ekran kesiklerini destekleyebilir.
Bu sayfada, kesme alanı (yani ekran yüzeyinde kesmeyi içeren uçtan uca dikdörtgen) ile çalışmanın yanı sıra Oluştur'da kesime sahip cihazlar için desteğin nasıl uygulanacağı açıklanmaktadır.
Varsayılan büyük/küçük harf kullanımı
API düzeyi 34 veya daha düşük sürümleri hedefleyen uygulamalar ya da enableEdgeToEdge
çağrısı yapmayan etkinlikler, ekran kesiğini içeren bir sistem çubuğuna çizim yapmadığı sürece varsayılan olarak kesik bölgeye çizim yapmaz.
Android 15 veya sonraki sürümleri çalıştıran cihazlarda API düzeyi 35 veya üstünü hedefleyen uygulamalar ya da enableEdgeToEdge
çağıran etkinlikler, kesme bölgesine çizim yapar.
Diğer bir deyişle, LAYOUT_IN_DISPLAY_CUTOUT_MODE_DEFAULT
,
LAYOUT_IN_DISPLAY_CUTOUT_MODE_SHORT_EDGES
ve
LAYOUT_IN_DISPLAY_CUTOUT_MODE_NEVER
, Android 15 veya sonraki sürümleri çalıştıran cihazlarda API düzeyi 35 veya daha yüksek sürümleri hedefleyen uygulamalardaki sabit olmayan pencereler için LAYOUT_IN_DISPLAY_CUTOUT_MODE_ALWAYS
olarak yorumlanır.
Kesme kenarı bilgilerini manuel olarak işleme
Kesme alanının önemli metinleri, kontrolleri veya hassas dokunma tanıma gerektiren etkileşimli öğeleri gizlemesini önlemek için kesme bilgileriyle ilgili işlem yapmanız gerekir (kesme alanında dokunma hassasiyeti daha düşük olabilir). Kesintileri işlerken durum çubuğu yüksekliğini sabit kodlamayın. Aksi takdirde, içeriklerin örtüşmesine veya kesilmesine neden olabilirsiniz. Bunun yerine, aşağıdaki yöntemlerden birini kullanarak kesiklerin üstesinden gelin:
WindowInsets.displayCutout
,WindowInsets.safeContent
veyaWindowInsets.safeDrawing
kullanılıyorLocalView.current.rootWindowInsets.displayCutout
ile kesikPath
nesnesine erişim
Oluşturma için, kompozisyonlarınızdaki kesik iç içe eklemeleri işlemek üzere displayCutout
, safeContent
veya safeDrawing
kullanmanızı öneririz. Bu yaklaşım, gerektiğinde ekrandaki kesik dolgusunu dikkate almanıza veya gerekmediğinde yok saymanıza olanak tanır.
Canvas(modifier = Modifier.fillMaxSize().windowInsetsPadding(WindowInsets.displayCutout)) { drawRect(Color.Red, style = Stroke(2.dp.toPx())) }
İçeriğinizin, kesiklerle nasıl oluşturulduğunu test etme
Uygulamanızın tüm ekranlarını ve deneyimlerini test ettiğinizden emin olun. Mümkünse farklı türde kesiklere sahip cihazlarda test edin. Kesikli ekrana sahip bir cihazınız yoksa aşağıdakileri yaparak Android 9 veya sonraki bir sürümün yüklü olduğu herhangi bir cihazda ya da emülatörde yaygın kesik ekran yapılandırmalarını simüle edebilirsiniz:
- Geliştirici seçenekleri'ni etkinleştirin.
- Geliştirici seçenekleri ekranında Çizim bölümüne gidip Kesimli ekranı simüle et'i seçin.
- Çıkarma türünü seçin.
Sizin için önerilenler
- Not: JavaScript kapalıyken bağlantı metni gösterilir
- Oluştur'daki pencere iç içe eklemeleri
- Grafik Değiştiricileri
- Paragraf stili