3

Uygulamam ObjectAnimator'u kullanıyor. Ancak yakın zamanda, ObjectAnimator kullanan animasyonların çalışmadığını veya pil tasarrufu modu açıldığında bazen çakıldığını fark ettim. Uygulama arayüzünün düzgünlüğü animasyonlara çok fazla bağlı olduğundan, bunlardan hiçbirini çıkaramam. Lütfen bu animasyonları pil tasarrufu modunda bile kullanmak için bir geçici çözüm sağlayın. Tüm animatörler bu problemi yaratıyor mu? Şimdiden teşekkürler.Pil Tasarrufu modunda çalışan Nesne animatör JellyBean (> Android 5.x)

+0

yalnızca "pil tasarrufu modu" değil, kullanıcı animasyonları kapatabilir ve "ValueAnimator"/"ObjectAnimator" öğesinin hiçbiri – pskink

+0

@pskink çalışamaz. Ne yapmalıyım? Açıkça onları kapatır ?? –

+0

, animatörün dinleyicileri içinde herhangi bir iş mantığını çağırmamalısınız (animatörler dinleyiciler tarafından çağrıldıkları için başlangıç ​​ve bitiş değerleri hariç) – pskink

cevap

0

Aslında, Android, pil tasarrufu modu açıldığında animasyonu devre dışı bırakır, yani animatöre ayarladığınız süre 0 olarak değişir. Animatör, süre 0'dan beri hedef görünüme uygulanacak son değeri alır. Örneğin : bakış

View container = inflater.inflate(R.layout.container); 
View view = inflater.inflate(R.layout.view, null); 
container.addView(view); 
ObjectAnimator animator = ObjectAnimator.ofFloat(view, "y", 0, 100); 
animator.setDuration(200); 
animator.start(); 

konumu (0, 100) zaman animasyon kaplama olarak ayarlanacaktır. Pil tasarrufu modunda, animatörün süresi 0 olarak değişir ve animatör 'y' görünümünüzü ayarladıysa, görünüm henüz düzen değildir, bu nedenle animasyon başarısız olur.

Çözünürlük:

View container = inflater.inflate(R.layout.container); 
View view = inflater.inflate(R.layout.view, null); 
new Handler().post(new Runnable() { 
    @Override 
    public void run() { 
     ObjectAnimator animator = ObjectAnimator.ofFloat(view, "y", 0, 100); 
     animator.setDuration(200); 
     animator.start(); 
    } 
}); 

Emin görünümü yapmalıdır animatör çalıştırılmadan önce düzen bitirmek vardı.

+0

Bunu denediniz. . –