Hareketle gezinmeyle uyumluluk sağlama

Android 10 (API düzeyi 29) sürümünden itibaren Android sistemi, tamamen harekete dayalı gezinmeyi desteklemektedir. 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 işleme

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 tahmini geri 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ışma

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 öğeleriyle çakışabilir. 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'de 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ışmalar

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 diğer View dışı 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 oynarken) hariç tutmalıdır.

Bir oyun, kullanıcının ana sayfa hareketi alanının yakınında kaydırma yapmasını gerektiriyorsa uygulama, tam ekran modunda düzenlenmeyi isteyebilir. Bu politika, 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.

Uygulamanızı, tahmini geri hareketini destekleyecek şekilde güncelleyin

Android 13 (API düzeyi 33), telefonlar, büyük ekranlar ve katlanabilir cihazlar gibi Android cihazlar için tahmini geri hareketi özelliğini sunar. Tahmin edilen geri gitme hareketi, çok yıllık bir sürümün parçasıdır. Bu özellik tam olarak uygulandığında, kullanıcıların geri hareketinin hedefini veya diğer sonucunu tam olarak tamamlamadan önce önizlemesine 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 Tahmini geri 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