如何让Android ProgressBar在代码中确定?

参见英文答案 > How do I use Android ProgressBar in determinate mode?2个
我正在尝试在代码中添加进度条并使其确定:
progressBar = new ProgressBar(getActivity());
progressBar.setLayoutParams(layoutParams);
parent.addView(progressBar,index);
progressBar.setId(id.list_item_secondary);
progressBar.setProgressDrawable(getResources().getDrawable(drawable.progress_horizontal));
progressBar.setIndeterminate(false);
progressBar.setMax(100);

在progressBar.setIndeminminate(false)之后,isIndeterminate仍然为true,进度保持显示不确定的圆.

我怎样才能确定它?

解决方法

从ProgressBar源代码 here,您调用的构造函数在第237行,它在第241行调用构造函数,而第241行又使用样式调用第245行中的构造函数:
com.android.internal.R.attr.progressBarStyle

此样式默认情况下将android:indeterminateOnly属性设置为true,因此将忽略对setIndeterminate的调用.请参阅第433行的功能说明.

我没有这样做,但我假设你在第245行中调用构造函数如下:

progressBar = new ProgressBar(getActivity(),null,<Your Style ID>);

作为第三个参数传递一个样式定义与android:indeterminateOnly为false它应该工作.基于源代码,我假设setIndeterminate仅用于启用它而不是禁用它.

希望这可以帮助…

相关文章

Android性能优化——之控件的优化 前面讲了图像的优化,接下...
前言 上一篇已经讲了如何实现textView中粗字体效果,里面主要...
最近项目重构,涉及到了数据库和文件下载,发现GreenDao这个...
WebView加载页面的两种方式 一、加载网络页面 加载网络页面,...
给APP全局设置字体主要分为两个方面来介绍 一、给原生界面设...
前言 最近UI大牛出了一版新的效果图,按照IOS的效果做的,页...