我试图从一个在progressBar 中淡出的doInBackground 中调用一个函数AsyncTask
。每次我调用此函数时,进度条都会根据需要淡入然后消失。我在最后添加了一个检查,告诉我进度条的可见性在方法完成后GONE
立即恢复:runOnUIThread
重置程序消失
为什么会这样,我怎样才能使进度条保持可见?
我一直在使用以下内容:
@TargetApi(12)
private void fadeInProgressBar(final int time, ProgressBar prog){
System.out.println("MainActivity: Fading In ProgressBar");
runOnUiThread(new Runnable(){
@Override
public void run() {
if(usingHigherApiThan(12)&&prog.getVisibility()==View.GONE){
prog.setVisibility(View.VISIBLE);
if(prog.getAlpha()<1){
prog.animate().setDuration(time).alpha(1);
}
}else if(prog.getVisibility()==View.GONE){
prog.setVisibility(View.VISIBLE);
final AlphaAnimation animation = new AlphaAnimation(0F, 1F);
animation.setDuration(time);
animation.setFillAfter(true);
prog.startAnimation(animation);
}
}
});
if(prog.getVisibility()==View.VISIBLE){
System.out.println("Left Prog Visible");
}else{
System.out.println("Reset Prog To Gone");
}
}
注意usingHigherApiThan(12)
只检查构建版本是 12 或更高版本,并且在 12 以上和 11 以下都会出现此问题。