Örnek-6: Özel Geçiş Animasyonu Hazırlama
Şimdiye kadar ki örneklerimizde sayfalar arasındaki geçişlerimizde Android'in bize sağladığı varsayılan geçiş olanaklarını kullandık. Şimdi gelin özelleştirelim..
Bu dersimizde özelleştirilmiş bir geçiş animasyonunun nasıl kullanılacağını öğreneceğiz. Yukarıda da sözünü ettiğimiz gibi şimdiye kadar ki örneklerimizde sayfalar arasındaki geçişlerimizde Android'in bize sağladığı varsayılan geçiş olanaklarını kullandık. O da düz ve animasyon içermeyen bir geçiş sitemiydi.
Bu örneğimiz için aşağıdaki ekranı kullanacağım. BlankFragment içerisindeki FRAGMENT 4'E GİT butonuna basıldığında BlankFragment4'e gidecek ve gittiği sayfadan geri dönüldüğünde animasyonlu bir geçiş yapmasını sağlayacağım.

Bunun için res klasörünün altında anim klasörü oluşturarak aşağıdaki 4 dosyayı buraya ekliyorum.
slide_in_left.xml
slide_in_right.xml
slide_out_left.xml
slide_out_right.xml
Şimdi BlankFragment.kt içerisine geçip aşağıdaki düzenlemeleri yapıyorum.
Burada iki yeni kod şeklim var. Birincisi findNavController'a ait navigate metoduna yeni bir parametre geçiyorum, navOptions. İkincisi de findNavController'a parametre olarak verilecek navOptions'ı kullanarak gerekli parametreleri taşıyacak options değişkenimi oluşturmak. Tüm yapmam gereken yalnızca bu kadar! Uygulamamızı çalıştırıp test edebilirsiniz.

Yukarıdaki anlatım şeklimiz navOptions'ı kullanmanın kod haliydi. İsterseniz aynı işlemi XML dosyası üzerinden de gerçekleştirebilirisiniz.
Öncelikle nav_graph.xml'i açalım ve aşağıdaki gibi BlankFragment'ten BlankFragment4'e giden action'ı düzenleyelim.
Yeri gelmişken belirtelim. Vermiş olduğumuz parametreler de şu anlama geliyor.
enterAnim: Bir hedefe giriş exitAnim: Bir varış yerinden çıkma popEnterAnim: Bir pop eylemi ile bir hedefe giriş popExitAnim: Bir pop eylemi ile varış yerinden çıkma
Dikkat edeceğiniz gibi biraz önce kod üzerinden yaptığımız animasyon atamalarını XML üzerinde yapmış olduk. Buna göre de BlankActivity.kt dosyasını aşağıdaki gibi düzenleyebiliriz.
Sonuç yine aynı olacaktır.

Last updated
Was this helpful?