是的,在 API level 26 中已弃用。相反,您可以使用progressBar。
以编程方式创建它:
首先获取对根布局的引用
RelativeLayout layout = findViewById(R.id.display); //specify here Root layout Id
或
RelativeLayout layout = findViewById(this);
然后添加进度条
progressBar = new ProgressBar(youractivity.this, null, android.R.attr.progressBarStyleLarge);
RelativeLayout.LayoutParams params = new RelativeLayout.LayoutParams(100, 100);
params.addRule(RelativeLayout.CENTER_IN_PARENT);
layout.addView(progressBar, params);
显示进度条
progressBar.setVisibility(View.VISIBLE);
隐藏进度条
progressBar.setVisibility(View.GONE);
要禁用用户交互,您只需添加以下内容
代码
getWindow().setFlags(WindowManager.LayoutParams.FLAG_NOT_TOUCHABLE,
WindowManager.LayoutParams.FLAG_NOT_TOUCHABLE);
要恢复用户交互,您只需添加以下代码
getWindow().clearFlags(WindowManager.LayoutParams.FLAG_NOT_TOUCHABLE);
仅供参考,请将android.R.attr.progressBarStyleSmall 更改为android.R.attr.progressBarStyleHorizontal。
下面的代码只适用于API level 21以上
progressBar.setProgressTintList(ColorStateList.valueOf(Color.RED));
通过 xml 创建:
<ProgressBar
android:id="@+id/progressbar"
style="?android:attr/progressBarStyleHorizontal"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:indeterminate="true"
android:max="100"
android:backgroundTint="@color/white"
android:layout_below="@+id/framelauout"
android:indeterminateTint="#1a09d6"
android:layout_marginTop="-7dp"/>
在你的活动中
progressBar = (ProgressBar) findViewById(R.id.progressbar);
显示/隐藏进度条是一样的
progressBar.setVisibility(View.VISIBLE); // To show the ProgressBar
progressBar.setVisibility(View.INVISIBLE); // To hide the ProgressBar
这是它的外观示例图片:
更多详情:
1. Reference one
2. Reference Two