1

У меня есть неопределенный индикатор выполнения, который не работает гладко, нить ui не замерзает, поэтому, вероятно, это не то, что вызвано тем, что длился длинный операнд на нити ui (у меня есть asynctask). Я использую последние инструменты сборки 22.01, а целевой SDK также 22, и я использую библиотеку поддержки с appcomp. По какой-то причине, когда приложение получает onPause и onResume, индикатор выполнения возвращается к норме. Устройства, на которых я тестирую, - это nexus 4 и htc1.ProgressBar не работает плавно loolipop

видео:

smooth progressBar > not smooth progressBar >

+0

Вы используете какую-либо библиотеку для этого 'ProgressBar' или используете по умолчанию? – hrskrs

+0

По умолчанию –

+0

Возможно, вам лучше показать свой код, если мы сможем что-то поймать или это связано с 'lollipop' – hrskrs

ответ

0

После того как я смотрю через исходный код ProgressBar я увидел, что в setVisibilty и onVisibilityChanged запуска и остановки анимации соответственно

public void setVisibility(int v) { 
    if (getVisibility() != v) { 
     super.setVisibility(v); 

     if (mIndeterminate) { 
      // let's be nice with the UI thread 
      if (v == GONE || v == INVISIBLE) { 
       stopAnimation(); 
      } else { 
       startAnimation(); 
      } 
     } 
    } 
} 

так я сделал звоните вручную следующим образом:

@Override 
public void onResume() { 
    super.onResume(); 

    progressBar.setVisibility(View.INVISIBLE); 
    progressBar.setVisibility(View.VISIBLE); 

и это решает проблему ...

Смежные вопросы