Tahmini geri gitme özelliğini ayarlama

Tahmin edilen geri gitme ve sistem animasyonları varsayılan olarak etkindir. Uygulamanız geri gitme etkinliğini engelliyorsa ve tahmin edilen geri gitme özelliğine geçiş yapmadıysanız uygulamanızı desteklenen geri gezinme API'lerini kullanacak şekilde güncelleyin.

Tahmin edilen geri gitme animasyonu.
Tahmin edilen etkinlikler arası animasyon.
Tahmine dayalı görevler arası animasyon.

Varsayılan sistem animasyonlarını etkinleştirme

Ana sayfaya geri dönme, etkinlikler arası geçiş ve görevler arası geçiş sistem animasyonları, desteklenen geri alma API'lerine geçiş yapan uygulamalar için Android 15 ve sonraki sürümlere sahip cihazlarda kullanılabilir.

  • Ana ekrana dönme: Kullanıcıyı ana ekrana döndürür.
  • Etkinlikler arası: Uygulama içindeki etkinlikler arasındaki geçişler.
  • Görevler arası: Görevler arasındaki geçişler.

Bu animasyonlar, Android 15 ve sonraki sürümlerde varsayılan olarak etkindir. Android 13 veya 14 yüklü cihazlarda kullanıcılar, Geliştirici seçenekleri'nden bu özellikleri etkinleştirebilir.

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

Navigation Compose ile tahmin edilen geri gitmeyi etkinleştirme

Navigation Compose'da tahmin edilen geri gitme özelliğini kullanmak için navigation-compose 2.8.0 veya daha yeni bir kitaplık sürümünü kullandığınızdan emin olun.

Navigation Compose, kullanıcı geri kaydırdığında ekranlar arasında otomatik olarak geçiş yapar:

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

Gezinirken popEnterTransition ve popExitTransition ile özel geçişler oluşturabilirsiniz. NavHost öğenize uygulandığında bu değiştiriciler, giriş ve çıkış ekranlarının nasıl animasyonlu hale getirileceğini tanımlamanıza olanak tanır. Bunları kullanarak ölçeklendirme, karartma veya kaydırma gibi çeşitli efektler oluşturabilirsiniz.

Bu örnekte, kullanıcı geri gittiğinde mevcut ekranın ölçeğini küçültmek için popExitTransition içinde scaleOut kullanılmıştır. Ayrıca transformOrigin parametresi, ölçeklendirme animasyonunun gerçekleştiği noktayı belirler. Varsayılan olarak ekranın ortasıdır (0.5f, 0.5f). Ölçeklendirmenin 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'ta özel bir uygulama içi animasyon.

popEnterTransition ve popExitTransition, özellikle eski yığın geri alma hareketiyle açılırken animasyonları kontrol eder. Ayrıca, yalnızca tahmin edilen geri gitme için değil, genel olarak composable'lara giriş ve çıkış animasyonlarını tanımlamak için enterTransition ve exitTransition öğelerini de kullanabilirsiniz. Yalnızca enterTransition ve exitTransition değerlerini ayarlarsanız bunlar hem normal gezinme hem de eski yığını açma için kullanılır. Ancak popEnterTransition ve popExitTransition kullanarak geri gezinme için farklı animasyonlar oluşturabilirsiniz.

Paylaşılan öğe geçişleriyle entegrasyon

Paylaşılan öğe geçişleri, paylaşılan içeriğe sahip composable'lar arasında sorunsuz bir görsel bağlantı sağlar. Bu geçişler genellikle gezinme için kullanılır.

Şekil 4. Navigation Compose'da tahmin edilen geri gitme ile paylaşılan öğe geçişi.

Navigation Compose ile paylaşılan öğeleri kullanmak için Paylaşılan öğelerle tahmin edilen geri gitme başlıklı makaleyi inceleyin.

Material Compose bileşenleriyle tahmin edilen geri gitme özelliğini destekleme

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

Tahmin edilen geri gitme animasyonlarını destekleyen Material bileşenleri şunlardır:

SearchBar ve ModalBottomSheet, tahmin edilen geri gitme hareketleriyle otomatik olarak animasyonlu hale getirilir. ModalNavigationDrawer, ModalDrawerSheet, DismissibleDrawerSheet ve DismissibleNavigationDrawer, drawerState öğesini ilgili sayfa içeriği composable'larına iletmenizi gerektirir.

Tahmin edilen geri gitme hareketi animasyonunu test etme

Hâlâ Android 13 veya Android 14 kullanıyorsanız ana ekrana 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. Tahmin edilen geri gitme animasyonları'nı seçin.
  3. Güncellenen uygulamanızı başlatın ve geri hareketini kullanarak nasıl çalıştığını görün.

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

Ek kaynaklar