Tahmini geri gitme özelliğini ayarlama

Tahmine dayalı geri hareketi ve sistem animasyonları varsayılan olarak etkindir. Uygulamanız geri etkinliğini yakalıyorsa ve tahminli geriye gitme özelliğine geçmediyseniz uygulamanızı desteklenen geri gezinme API'lerini kullanacak şekilde güncelleyin.

Tahmine dayalı ana ekrana geri dönme animasyonu.
Tahmine dayalı, etkinlikler arası animasyon.
Tahmine dayalı görevler arası animasyon.

Varsayılan sistem animasyonlarını etkinleştirme

Ana sayfaya geri gitme, etkinlikler arası geçiş ve görevler arası geçiş sistem animasyonları, desteklenen geri işleme API'lerine taşınan uygulamalar için Android 15 ve sonraki sürümlerde kullanılabilir.

  • Ana ekrana dönme: Kullanıcıyı ana ekrana döndürür.
  • Etkinlikler arası: Uygulama içindeki 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, Geliştirici seçenekleri'nden bu özelliği 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 tahmine dayalı geri gitmeyi etkinleştirme

Navigation Compose'da tahmini geri özelliğini kullanmak için navigation-compose 2.8.0 kitaplığını veya daha yeni bir 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 geçiş animasyonu.

Gezinirken popEnterTransition ve popExitTransition ile özel geçişler oluşturabilirsiniz. NavHost için uygulandığında bu değiştiriciler, giriş ve çıkış ekranlarının nasıl animasyonlandırılacağını tanımlamanıza olanak tanır. Bu efektleri kullanarak ölçeklendirme, solma veya kaydırma gibi çeşitli efektler oluşturabilirsiniz.

Bu örnekte, kullanıcı geri giderken çıkış ekranını küçültmek için scaleOut, popExitTransition içinde kullanılıyor. Ayrıca, transformOrigin parametresi, ölçeklendirme animasyonunun gerçekleştiği noktayı belirler. Varsayılan olarak ekranın merkezidir (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 üretir:

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

popEnterTransition ve popExitTransition, özellikle geri hareketle geri yığını açarken animasyonları kontrol eder. Ayrıca, yalnızca tahmini geri için değil, genel olarak composable'ların giriş ve çıkış animasyonlarını tanımlamak için enterTransition ve exitTransition öğelerini de kullanabilirsiniz. Yalnızca enterTransition ve exitTransition ayarlarsanız bunlar hem normal gezinme hem de geri yığınına geri dönme için kullanılır. Ancak popEnterTransition ve popExitTransition kullanarak geri gitme 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 ve 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 tahmini geri gitme başlıklı makaleye bakın.

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

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

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

SearchBar ve ModalBottomSheet, tahmine dayalı geri hareketiyle otomatik olarak animasyonlu hale gelir. ModalNavigationDrawer, ModalDrawerSheet, DismissibleDrawerSheet ve DismissibleNavigationDrawer, drawerState öğesini kendi sayfa içeriği composable'lerine iletmenizi gerektirir.

Tahmin edilen geri gitme hareketi animasyonunu test etme

Android 13 veya Android 14'ü kullanmaya devam ediyorsanız ana ekrana dönüş 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 nasıl çalıştığını görün.

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

Ek kaynaklar