参见英文答案 >
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行的功能说明.
progressBar = new ProgressBar(getActivity(),null,<Your Style ID>);
作为第三个参数传递一个样式定义与android:indeterminateOnly为false它应该工作.基于源代码,我假设setIndeterminate仅用于启用它而不是禁用它.
希望这可以帮助…