有一种进度条可以直接在窗口标题栏上面显示,这种进度条甚至不需要使用ProgressBar组件,很多新闻客户端上面用的非常多,当我们点击新闻头条时,他会跳转到详情页面,而这个时候你会在标题栏上面看到一个加载的进度条,然而它可以直接由Activity的方法启动。只需要如下两步就能实现:
1、 调用Acticity的requestWindowFeature()方法,该方法传入的参数可以启用窗口特性,例如传入Window.FEATURE_INDETERMINATE_PROGRESS在窗口标题栏上面显示不带进度的进度条;传入Window.FEATURE_PROGRESS则显示带进度的进度条。
2.、调用Activity的setProgressBarVisibility(boolean)或则setProgressBarIndeterminateVisibility(boolean)就能实现控制进度条的显示和隐藏;
下面给个例子。供大家参看;光说不练嘴把式,希望大家多练练,孰能生巧;
package com.example.titleprogressbar;
import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.Window;
import android.widget.Button;
public class MainActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
//设置窗口特性:启用显示进度的进度条
requestWindowFeature(Window.FEATURE_PROGRESS);
//设置窗口特性:启用不显示进度的进度条
requestWindowFeature(Window.FEATURE_INDETERMINATE_PROGRESS);
setContentView(R.layout.activity_main);
Button btn1 = (Button) findViewById(R.id.btn1);
Button btn2 = (Button) findViewById(R.id.btn2);
btn1.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
//显示不带进度的进度条
setProgressBarIndeterminateVisibility(true);
//显示带进度的进度条
setProgressBarVisibility(true);
setProgress(40);
}
});
btn2.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
//显示不带进度的进度条
setProgressBarIndeterminateVisibility(false);
//显示带进度的进度条
setProgressBarVisibility(false);
}
});
}
}
大家可以试试看,这样就能成功实现在标题栏上面显示进度条。