1

我有一个屏幕,上面有几个倒计时的计时器。每个 chrono 都有自己的代表在到达 0(开始已满)ProgressBar之前还剩下多少。ProgressBarActivity在 4 中效果很好Android,但今天我在Android2.3.6 中尝试过,有时ProgressBars没有显示。

以下是一些用例,因此您可以了解它在哪些用例中无法正常工作。在所有情况下,都应显示 ProgressBar。

Activity- 用户第一次打开,都ProgressBars需要满不运行。ProgressBars没有显示。

-一些 ProgressBars开始运行(减少)。它们仍然没有显示。如果用户关闭app并再次打开它,则会显示所有ProgressBars内容(即使是已满的)。

- 当某些计时器达到 0 时,它ProgressBar会再次被填充,并且其内部颜色变为红色。当这种情况发生时,它ProgressBar也会消失。

有人知道为什么会这样吗?

这就是我ProgressBars在我的 xml 中声明的方式:

         <ProgressBar
                android:id="@+id/lci_progbar"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:layout_alignParentBottom="true"
                android:layout_below="@+id/lci_time"
                android:layout_centerHorizontal="true"
                android:indeterminateDrawable="@android:drawable/progress_indeterminate_horizontal"
                android:indeterminateOnly="false"
                android:maxHeight="20dip"
                android:minHeight="20dip"
                android:paddingTop="5dp"
                android:progressDrawable="@drawable/time_progressbar" />

这就是我在我的活动中所做的:

    // Initialize progress bar.
    progBars[i] = (ProgressBar) findViewById(ids[i]);
    if (progBars[i].getAnimation() != null)
        progBars[i].getAnimation().cancel();

    if (arr_Chronometers[i].isCountingReverse()) {
        // Chrono hasn't reached 0.
        progBars[i].setMax((int) arr_Chronometers[i].doGetTotalTime());
        progBars[i].setProgress((int) arr_Chronometers[i].doGetElapsedTime());
        progBars[i].setProgressDrawable(getResources().getDrawable(
            R.drawable.time_progressbar)); // Green bar
    }
    else {
        // Chrono has reached 0.
        progBars[i].setProgressDrawable(getResources().getDrawable(
            R.drawable.time_progressbar_red)); // Red bar

        progBars[i].setMax(100);
        progBars[i].setProgress(100);
    }

就像我说的,它适用于 Android 4(4.0.4 和 4.2),但不适用于 Android 2.3.6(我在几个设备和模拟器中尝试过)。

谢谢!

4

0 回答 0