Kök noktası (x, y)
koordinatlarına sahip olsun. O zaman bu kod ile hedef pozisyona bu noktadan tüm görünümleri canlandırabilirsiniz:
recycler.addOnLayoutChangeListener(new View.OnLayoutChangeListener() {
@Override
public void onLayoutChange(final View view,
final int left, final int top, final int right, final int bottom,
final int oldLeft, final int oldTop, final int oldRight, final int oldBottom) {
recycler.removeOnLayoutChangeListener(this);
for (int i = 0, count = recycler.getChildCount(); i < count; ++i) {
final View child = recycler.getChildAt(i);
child.setTranslationX(x - child.getLeft());
child.setTranslationY(y - child.getTop());
child.animate()
.translationX(0f)
.translationY(0f)
.setStartDelay(5 * i * i)
.setDuration(DURATION)
.withLayer()
.start();
}
}
});
Burada başlangıç noktasında
RecyclerView
tüm çocukları konumlandırmak ve hedef konumlara animasyon. Tüm animasyonları
RecyclerView
düzeninden sonra başlatırız, böylece çocuklar oluşturulur ve konumları hesaplanır.
Animasyon gecikmesi 5 * i * i
olarak ayarlandığında, gecikmenin nasıl hesaplanabileceğine dair bir örnektir. Bu formülü istediğiniz herhangi bir şeye değiştirebilir veya ihtiyacınız yoksa gecikmeyi kaldırabilirsiniz.
Sanırım herhangi bir "populate animasyonu" yapıyorlar. Görüntüler GridView parçasını bir şekilde tutuyorlar ve görüntülerle önceden dolu olan tüm parça üzerinde "ölçek ve yakınlaştırma" animasyonu yapıyorlar. Uygulamanın önbelleğini temizlerseniz ve tekrar başlatırsanız ve ilk defa ve ikinci kez klasöre giderken yakından izlerseniz, göreceksiniz. – MKJParekh
Sanırım RecyclerView öğesinin öğesi. –