我无法在Lollipop上看到ProgressDialog中的进度微调器

最后发布: 2015-09-15 23:28:02


问题

使用ProgressDialog制作应用程序,它在JellyBean上显示正常,但在使用Lollipop测试时我只看到标题和消息,没有进度微调器..我正在使用

compile 'com.android.support:appcompat-v7:22.2.0'

支持库和AppCompatActivity

代码是:

 ProgressDialog progressDialog = new ProgressDialog(AddBuddyActivity.this);
 progressDialog.setMessage("Loading...");
 progressDialog.setCancelable(false);
 progressDialog.setProgressStyle(ProgressDialog.STYLE_SPINNER);
 progressDialog.show();

您可以在此处查看我在同一主题上发布的另一个问题。

android dialog spinner progress
回答

注意 :您可以在此处查看此问题的伪复制品。 链接中的那个更彻底,但两者都有相同的解决方案。

答案似乎是,如果用户在开发人员选项中关闭了转换,则ProgressDialog(即Progress Spinner)中的动画将不会显示。 打开它们并重新启动应用程序,您将看到微调器!

允许关闭这些设置的动画的解决方案似乎是制作一个自定义对话框,这无疑可能看起来比默认的ProgressDialog更好。

并且,作为对试图滥用ProgressDialog的人的公平警告,请注意开发人员文档中的这些内容

Android包含另一个名为ProgressDialog的对话框类,它显示带有进度条的对话框。 但是,如果需要指示加载或不确定进度,则应遵循Progress&Activity的设计指南,并在布局中使用ProgressBar

从这一点来看,我认为使用它们通过网络进行长时间调用是可以的,而加载信息或执行一个长的本地进程应该使用其他一个进度组件来指示。


回答

我在棒棒糖中使用它。 请让我知道这对你有没有用。 我使用的支持库是android-support-v4.jar

import android.app.ProgressDialog;

ProgressDialog dialog = ProgressDialog.show(this, "Title", "Message ", true, true);//Put this where you need it

这对我来说很好用:Droid Razor M搭配4.4.2 Samsung Note 4搭配5.0.1 Samsung Galaxy 6 Edge搭配5.1.1