ProgressBar没有顺利运行loolipop

时间:2015-06-10 06:36:18

标签: android android-5.0-lollipop android-appcompat android-progressbar

我有一个不确定的进度条,它运行不顺畅,ui线程没有冻结,所以可能它不是由于在ui线程上运行长操作引起的(我有asynctask)。我使用最新的构建工具22.01,目标SDK也是22,我使用支持库和appcomp。出于某种原因,当应用程序获得onPause和onResume时,进度条恢复正常。我测试的设备是nexus 4和htc1。

视频:

smooth progressBar > not smooth progressBar >

1 个答案:

答案 0 :(得分: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);

这解决了问题...