Java API 19中未填写进度条

Java API 19中未填写进度条,java,android,progress-bar,Java,Android,Progress Bar,我在运行时动态构建一个ProgressBar,Progressar并不仅仅在API 19上填充,它在更高的API上工作,代表百分比的绿色条不会出现 为什么它在API 19上不起作用 private ProgressBar drawProgressBar(MatiereProgression mat) { ProgressBar progress = new ProgressBar(mContext, null, R.style.Widget_AppCompat_Progr

我在运行时动态构建一个ProgressBar,Progressar并不仅仅在API 19上填充,它在更高的API上工作,代表百分比的绿色条不会出现

为什么它在API 19上不起作用

    private ProgressBar drawProgressBar(MatiereProgression mat) {
        ProgressBar progress = new ProgressBar(mContext, null, R.style.Widget_AppCompat_ProgressBar_Horizontal);
        LinearLayout.LayoutParams progressLayout = new LinearLayout.LayoutParams(0, dpToPx(4));
        progressLayout.weight = 11;
        progressLayout.gravity = Gravity.CENTER_VERTICAL;

        progress.setLayoutParams(progressLayout);
        progress.setIndeterminate(false);
        progress.setMax(100);
        progress.setMinimumHeight(0);
        progress.setMinimumWidth(150);
        progress.setProgress(mat.mProgress);
        progress.setProgressDrawable(ContextCompat.getDrawable(mContext, R.drawable.progressbar));

        return progress;
}

我发现了这个bug,它是最后几行,在API 19上,您需要关心“setProgressDrawable”和“setProgress”之间的行顺序,它对我很有效

progress.setLayoutParams(progressLayout);
progress.setIndeterminate(false);
progress.setMax(100);
progress.setProgressDrawable(ContextCompat.getDrawable(mContext, R.drawable.progressbar));
progress.setMinimumHeight(0);
progress.setMinimumWidth(150);
progress.setProgress(mat.mProgress);