Hareketle gezinmeyle uyumluluk sağlama

Android 10'dan (API düzeyi 29) itibaren Android sistemi, tamamen harekete dayalı gezinmeyi destekler. Uygulama geliştiricilerin, uygulamalarının bu özellik ile uyumlu olmasını sağlamak için yapması gereken iki şey vardır:

  • Uygulama içeriğini uçtan uca genişletin.
  • Çakışan uygulama hareketlerini yönetme

Ayrıca Android 13 (API düzeyi 33), çok yıllık bir sürümün parçası olarak telefonlar, büyük ekranlar ve katlanabilir cihazlar gibi Android cihazlar için tahmini geri hareketi özelliğini sunar. Uygulama geliştiriciler, uygulamalarının tahmin edilen geri gitme hareketini desteklemesini sağlamak için gerekli adımları atabilir.

Uygulama içeriğini uçtan uca sunma

Kayar gezinme çubuğunun sağladığı ek ekran alanından yararlanmak için uygulamanızda belirli değişiklikler yapmanız gerekir.

Ayrıntılı bilgi için Uygulamanızda içeriği uçtan uca görüntüleme başlıklı makaleyi inceleyin.

Çakışan uygulama hareketlerini işleme

Hareketle gezinme modeli, daha önce uygulama geliştiriciler tarafından kullanılan hareketlerle çakışabilir. Sonuç olarak, uygulamanızın kullanıcı arayüzünde düzenlemeler yapmanız gerekebilir.

Geri hareketleriyle çakışmalar

Geri gitmek için yeni sistem hareketi, ekranın sol veya sağ kenarından içeri doğru kaydırmadır. Bu durum, söz konusu alanlardaki uygulama gezinme öğelerini etkileyebilir. Ekranın sol ve sağ kenarlarındaki öğelerin işlevselliğini korumak için, hangi bölgelerin dokunma girişi alması gerektiğini sisteme belirterek geri hareketini seçmeli olarak devre dışı bırakın. Bu işlemi, Android 10'da kullanıma sunulan View.setSystemGestureExclusionRects() API'sine List<Rect> ileterek yapabilirsiniz. Bu yöntem, ViewCompat'da androidx.core:core:1.1.0-dev01 itibarıyla kullanılabilir.

Örneğin:

Kotlin

var exclusionRects = listOf(rect1, rect2, rect3)

fun onLayout(
        changedCanvas: Boolean, left: Int, top: Int, right: Int, bottom: Int) {
  // Update rect bounds and the exclusionRects list
  setSystemGestureExclusionRects(exclusionRects)
}

fun onDraw(canvas: Canvas) {
  // Update rect bounds and the exclusionRects list
  setSystemGestureExclusionRects(exclusionRects)
}

Java

List<Rect> exclusionRects;

public void onLayout(
        boolean changedCanvas, int left, int top, int right, int bottom) {
    // Update rect bounds and the exclusionRects list
    setSystemGestureExclusionRects(exclusionRects);
}

public void onDraw(Canvas canvas) {
    // Update rect bounds and the exclusionRects list
    setSystemGestureExclusionRects(exclusionRects);
}

Ev veya hızlı geçiş hareketleriyle çakışma

Ana ekran ve hızlı geçiş için yeni sistem hareketlerinin her ikisinde de ekranın alt kısmında, daha önce gezinme çubuğunun bulunduğu alanda kaydırma yapılır. Uygulamalar, geri hareketinde olduğu gibi bu hareketleri devre dışı bırakamaz.

Android 10, bu sorunu azaltmak için dokunma tanıma eşiklerini uygulamalara bildiren WindowInsets.getMandatorySystemGestureInsets() API'sini kullanıma sunar.

Oyunlar ve View dışındaki diğer uygulamalar

Görünüm hiyerarşisi olmayan oyunlar ve diğer uygulamalar genellikle kullanıcının sistem hareketi alanlarının yakınında kaydırma yapmasını gerektirir. Bu gibi durumlarda oyunlar, sistem hareketleri için ayrılan alanlarla çakışan alanları hariç tutmak için Window.setSystemGestureExclusionRects() kullanabilir. Oyunlar, bu alanları yalnızca gerektiğinde (ör. oyun sırasında) hariç tutmalıdır.

Bir oyun, kullanıcının ana ekran hareketi alanının yakınında kaydırma yapmasını gerektiriyorsa uygulama, tam ekran modunda düzenlenmeyi isteyebilir. Bu ayar, kullanıcı oyunla etkileşimde bulunurken sistem hareketlerini devre dışı bırakır ancak kullanıcının ekranın alt kısmından yukarı kaydırarak sistem hareketlerini yeniden etkinleştirmesine olanak tanır.

Tahmin edilen geri gitme hareketini desteklemek için uygulamanızı güncelleyin

Android 13 (API düzeyi 33), telefonlar, büyük ekranlar ve katlanabilir cihazlar gibi Android cihazlar için tahmin edilen geri gitme hareketini kullanıma sunar. Tahmin edilen geri gitme hareketi, çok yıllık bir yayın sürecinin parçasıdır. Tam olarak uygulandığında bu özellik, kullanıcıların geri hareketini tam olarak tamamlamadan önce hedefin veya geri hareketinin diğer sonucunun önizlemesini görmesine olanak tanır. Böylece kullanıcılar, devam edip etmeyeceklerine veya mevcut görünümde kalıp kalmayacaklarına karar verebilir.

Ayrıntılar için Add support for the predictive back gesture (Tahmin edilen geri gitme hareketine destek ekleme) başlıklı makaleyi inceleyin.

Ek kaynaklar

Hareketle gezinme hakkında daha fazla bilgi edinmek için aşağıdaki makaleleri inceleyin:

Blog yayınları

Videolar