API 19 上的进度条未填充

Progressbar not filled on API 19

我正在运行时动态构建 ProgressBar,Progressar 仅在 API 19 上未填充,它适用于更高的 APIs,代表百分比的绿色条不出现。

为什么它在 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;
}

我发现了这个错误,它是最后几行,在 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);