Android - ObjectAnimator не работает в режиме батареи / энергосбережения - PullRequest
0 голосов
/ 24 августа 2018

В Android ObjectAnimator заменяет длительность на 0 (ноль) в режиме энергосбережения. Кроме того, в Android P Beta это поведение по умолчанию, даже если режим энергосбережения выключен. Есть ли замена для этого вида линейной анимации? Я хочу реализовать индикатор прогресса в точности как Instagram, Facebook и WhatsApp. Заранее спасибо.

ObjectAnimator animator = ObjectAnimator.ofInt(scrollProgressBar, "progress", 100);
animator.setInterpolator(new LinearInterpolator());
animator.setDuration(duration);
animator.addListener(new AnimatorListenerAdapter() {
     @Override
     public void onAnimationEnd(Animator animation) {
          super.onAnimationEnd(animation);

          // Logic
          recyclerView.smoothScrollToPosition(mPosition + 1);
     }
});
animator.start();

Я также пытался запустить в потоке пользовательского интерфейса, но он не работает

new Handler().post(new Runnable() {
     @Override
     public void run() {
          ObjectAnimator animator = ObjectAnimator.ofInt(scrollProgressBar, "progress", 100);
          animator.setInterpolator(new LinearInterpolator());
          animator.setDuration(duration);
          animator.addListener(new AnimatorListenerAdapter() {
               @Override
               public void onAnimationEnd(Animator animation) {
                    super.onAnimationEnd(animation);

                    // Logic
                    recyclerView.smoothScrollToPosition(mPosition + 1);
               }
          });
          animator.start();
     }
});
...