1

いくつかのクロノメーターが逆方向にカウントされている画面があります。各クロノには、0 (スタートがいっぱい)ProgressBarに達するまでの残り時間を表す独自のものがあります。ProgressBarこれActivityAndroid4 ではうまく機能しますが、今日はAndroid2.3.6 で試してみましたProgressBarsが、表示されないことがあります。

以下にいくつかの使用例を示しますので、どのケースで正常に機能していないかを理解できます。いずれの場合も、ProgressBars が表示されます。

- ユーザーが初めて を開きます。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