我发现ProgressDialog现在已经被弃用了。除了ProgressBar,还有什么替代工具可以代替它。 我使用的是android studio 2.3.3版。
ProgressDialog progressDialog=new ProgressDialog(this);
progressDialog.show();
我发现ProgressDialog现在已经被弃用了。除了ProgressBar,还有什么替代工具可以代替它。 我使用的是android studio 2.3.3版。
ProgressDialog progressDialog=new ProgressDialog(this);
progressDialog.show();
当前回答
它可能对其他人有帮助。
许多流行的应用程序都有不同的方法来显示任何事情的进展,如网络请求,文件加载等。加载旋转器不会显示已加载或剩余的内容有多少。从UI/UX的角度来看,有一段时间的不确定性是不好的。许多流行的应用程序(Facebook, Linkedin等)通过首先显示基本的UI显示来解决这个问题。然后加载的内容逐渐填充在屏幕上。
我已经在我的应用程序中使用了shimmer来解决这个问题。
有一篇关于这方面的好文章,它将对其他人有益
其他回答
是的,在API级别26中已弃用。相反,您可以使用progressBar。
以编程方式创建:
首先获取根布局的引用
RelativeLayout layout = findViewById(R.id.display); //specify here Root layout Id
or
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.t r. progressbarstylesmall更改为android. r.t r. progressbarstylehorizontal。
下面的代码只能在API级别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. 引用一个 2. 引用两个
我使用来自https://github.com/Q115/DelayedProgressDialog的DelayedProgressDialog,它与ProgressDialog相同,在必要时具有延迟的额外好处。
使用它类似于Android O之前的ProgressDialog:
DelayedProgressDialog progressDialog = new DelayedProgressDialog();
progressDialog.show(getSupportFragmentManager(), "tag");
创建一个带有进度条和其他视图的xml文件,并使用此xml文件或Alertdialog派生类扩展派生Dialog类视图。在其他解决方案中已详细提供。 但是如果你想要一个解或者存在的库。我找到了这两个。
https://github.com/Livin21/MissMe https://github.com/skydoves/ProgressView
这些都是完美的,而且是根据需要来做的。
这个类在API级别26中已弃用。ProgressDialog是一个模式 对话框,这会阻止用户与应用程序进行交互 使用这个类时,您应该使用一个进度指示器 ProgressBar,它可以嵌入到你的应用的UI中。另外, 您可以使用通知通知用户任务的进度。链接
因为谷歌新的UI标准,它在Android O被弃用了
也许这个指南可以帮助你。
通常我更喜欢用指示器制作自定义alertdialog。它解决了诸如自定义App视图等问题。