Tahmini geri gitme özelliğini ayarlama

Tahmine dayalı geri hareketi animasyonları özelliğini etkinleştirmek için tahmine dayalı geri hareketi desteklemeyi etkinleştirmeniz gerekir. Özelliği etkinleştirmek için AndroidManifest.xml dosyanızdaki <application> etiketine veya tek tek <activity> etiketlerine android:enableOnBackInvokedCallback="true" ekleyin.

Varsayılan sistem animasyonlarını etkinleştirme

Ana sayfaya geri gitme, etkinlik ve görevler arasında geçiş yapıp geri gitme sistem animasyonları, desteklenen geri işleme API'lerine taşınan uygulamalarda Android 15 ve sonraki sürümleri çalıştıran cihazlarda kullanılabilir.

  • Ana ekrana dön: Kullanıcıyı ana ekrana döndürür.
  • Etkinlikler arası: Uygulamadaki etkinlikler arasında geçişler.
  • Görevler arası: Görevler arasında geçişler.

Bu animasyonlar Android 15 ve sonraki sürümlerde varsayılan olarak etkindir. Android 13 veya 14 çalıştıran cihazlarda kullanıcılar bu özellikleri Geliştirici seçenekleri üzerinden etkinleştirebilir.

Sistem animasyonları için AndroidX Activity bağımlılığınızı 1.6.0 veya sonraki bir sürüme güncelleyin.

Gezinme Oluşturma ile tahmine dayalı geri hareketi etkinleştirme

Gezinme Oluştur'da tahmini geri özelliğini kullanmak için navigation-compose 2.8.0 veya daha yeni bir kitaplık kullandığınızdan emin olun.

Gezinme Oluşturma, kullanıcı geri kaydırdığında ekranlar arasında otomatik olarak geçiş yapar:

Şekil 2. SociaLite'teki varsayılan uygulama içi geçiş animasyonu.

Gezinirken popEnterTransition ve popExitTransition ile özel geçişler oluşturabilirsiniz. Bu değiştiriciler, NavHost'ünüze uygulandığında giriş ve çıkış ekranlarının nasıl animasyonlu olacağını tanımlamanıza olanak tanır. Bu araçları kullanarak ölçeklendirme, solma veya kaydırma gibi çeşitli efektler oluşturabilirsiniz.

Bu örnekte, kullanıcı geri dönerken çıkış ekranını küçültmek için popExitTransition içinde scaleOut kullanılır. Ayrıca transformOrigin parametresi, ölçeklendirme animasyonunun gerçekleştiği noktayı belirler. Varsayılan olarak ekranın ortasındadır (0.5f, 0.5f). Ölçeklemenin farklı bir noktadan başlaması için bu değeri ayarlayabilirsiniz.

NavHost(
    navController = navController,
    startDestination = Home,
    popExitTransition = {
        scaleOut(
            targetScale = 0.9f,
            transformOrigin = TransformOrigin(pivotFractionX = 0.5f, pivotFractionY = 0.5f)
        )
    },
    popEnterTransition = {
        EnterTransition.None
    },
    modifier = modifier,
)

Bu kod aşağıdaki sonucu verir:

Şekil 3. SociaLite'te özel bir uygulama içi animasyon.

popEnterTransition ve popExitTransition, özellikle arka yığının açıldığı durumlarda (ör. geri hareketi ile) animasyonları kontrol eder. enterTransition ve exitTransition'yi yalnızca tahmini geri düğmesi için değil, genel olarak bileşimlere girme ve bileşimlerden çıkma animasyonları tanımlamak için de kullanabilirsiniz. Yalnızca enterTransition ve exitTransition'ü ayarlarsanız bunlar hem normal gezinme hem de geri yığınını göstermek için kullanılır. Ancak popEnterTransition ve popExitTransition'ü kullanmak, geri gezinme için farklı animasyonlar oluşturmanıza olanak tanır.

Ortak öğe geçişleriyle entegrasyon

Paylaşılan öğe geçişleri, genellikle gezinme için kullanılan paylaşılan içeriğe sahip bileşenler arasında sorunsuz bir görsel bağlantı sağlar.

Şekil 4. Gezinme Oluştur'da tahmini geri ile paylaşılan öğe geçişi

Gezinme Oluştur ile paylaşılan öğeleri kullanmak için Ortak öğelerle tahmini geri alma başlıklı makaleyi inceleyin.

Material Compose bileşenleriyle tahmini geri desteği

Material Compose kitaplığındaki birçok bileşen, tahmini geri hareketleriyle sorunsuz bir şekilde çalışacak şekilde tasarlanmıştır. Bu bileşenlerde tahmini geri animasyonlarını etkinleştirmek için projenize en son Material3 bağımlılığını (androidx.compose.material3:material3-*:1.3.0 veya daha yeni) ekleyin.

Tahmine dayalı geri hareketi animasyonları destekleyen Materyal bileşenleri şunlardır:

SearchBar ve ModalBottomSheet, tahmine dayalı geri hareketleriyle otomatik olarak animasyonlu hale gelir. ModalNavigationDrawer, ModalDrawerSheet, DismissibleDrawerSheet ve DismissibleNavigationDrawer, drawerState öğesini ilgili sayfa içeriği kompozisyonlarına iletmenizi gerektirir.

Tahmine dayalı geri hareketi animasyonunu test etme

Hâlâ Android 13 veya Android 14 kullanıyorsanız ana ekrana geri dönme animasyonunu test edebilirsiniz.

Bu animasyonu test etmek için aşağıdaki adımları uygulayın:

  1. Cihazınızda Ayarlar > Sistem > Geliştirici seçenekleri'ne gidin.
  2. Tahmine dayalı geri hareketi animasyonları'nı seçin.
  3. Güncellenen uygulamanızı başlatın ve geri hareketini kullanarak uygulamanın nasıl çalıştığını görün.

Android 15 ve sonraki sürümlerde bu özellik varsayılan olarak etkindir.

Ek kaynaklar