Hareketle gezinmeyle uyumluluk sağlama

Android sistemi, Android 10'dan (API düzeyi 29) itibaren hareket temelli gezinme. Uygulama geliştiricilerin, başarılı olmaları için uygulamaları bu özellikle uyumluysa:

  • Uygulama içeriğini kenardan kenara genişletin.
  • Çakışan uygulama hareketlerini işleyin.

Ayrıca Android 13 (API düzeyi 33) Android için tahmini geri hareketi cihazlar, büyük ekranlar ve katlanabilir cihazlar gibi kullanabilirsiniz. Uygulama geliştiriciler, uygulamalarının tahmine dayalı geri hareketi.

Uçtan uca uygulama içeriği sağlayın

Kayan reklam öğesinin sağladığı ek ekran alanından yararlanmak için uygulamanızda bazı değişiklikleri yapılandırmanız gerekir.

Uygulamanızda içeriği uçtan uca görüntüleme konusuna bakın. inceleyebilirsiniz.

Çakışan uygulama hareketlerini işleme

Hareketle gezinme modeli, önceden yaptığınız hareketlerle çakışabilir kullandığına bakalım. Uygulamanızın kullanıcısına göre ayarlamalar yapmanız gerekebilir arayüzü.

Geri hareketlerle çakışmalar

Geri için yeni sistem hareketi, soldan veya ekranın sağ kenarında. Bu durum, yardımcı olabilir. Sol ve sağ kenarlardaki öğelerin işlevselliğini sürdürmek için geri hareketini devre dışı bırakmak için önce seçmeli bir şekilde geri hangi bölgelerin dokunmatik girişi alması gerektiğini sistemdir. Bunu yapmak için List<Rect> - View.setSystemGestureExclusionRects() API, Android 10'da kullanıma sunuldu. Bu yöntem şu tarih itibarıyla ViewCompat'te de kullanılabilir: androidx.core:core:1.1.0-dev01.

Örnek:

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);
}

Ana sayfa veya hızlı geçiş hareketleriyle çakışmalar

Ana sayfa ve hızlı geçiş için yeni sistem hareketlerinin her ikisi de ekranda ekranın alt kısmındaki, önceden gezinme çubuğunun bulunduğu alanda. Uygulamalar Geri hareketiyle mümkün olduğu için bu hareketleri devre dışı bırakamazsınız.

Android 10, bu sorunu azaltmak için WindowInsets.getMandatorySystemGestureInsets() API'yi kullanabilirsiniz.

Oyunlar ve görüntüleme içermeyen diğer uygulamalar

Görüntüleme hiyerarşisi olmayan oyunlar ve diğer uygulamalar için genellikle kullanıcının Sistem hareket alanlarının yakınında kaydırın. Böyle durumlarda oyunlar Window.setSystemGestureExclusionRects() tuşuna basarak sistem hareketleri için ayrılmış alanlarla çakışan alanları hariç tutabilirsiniz. Oyunlar bu alanları yalnızca gerektiğinde (ör. önemlidir.

Bir oyun, kullanıcının ekranı ana sayfa hareketi alanının yakınında kaydırmasını gerektiriyorsa uygulama şunları yapabilir: yoğunlaştırıcı modda bulunmasını talep eder. Bu işlem, sistem hareketlerini devre dışı bırakır. Kullanıcı oyunla etkileşimdeyken ancak kullanıcının oyunu yeniden etkinleştirmesine ekranın alt kısmından kaydırarak sistem hareketlerini görebilirsiniz.

Tahmine dayalı geri hareketini destekleyecek şekilde uygulamanızı güncelleyin

Android 13 (API düzeyi 33), Android için tahmine dayalı geri hareketi sunuyor telefon, büyük ekran ve katlanabilir cihazlar gibi Tahmine dayalı geri dönüş hareketi çok yıllık bir yayının parçasıdır. Bu özellik tam olarak uygulandığında kullanıcıların, uygulama devam etmeden önce geri hareketinin hedefi veya diğer içeriği tamamen tamamlar ve böylece devam edip etmeme kararını verirler. görünüm.

Görüntüleyin Tahmine dayalı geri hareketi için destek ekleme inceleyebilirsiniz.

Ek kaynaklar

Hareketle gezinme hakkında daha fazla bilgi edinmek için aşağıdakilere bakın:

Blog yayınları

Videolar