0

我尝试在我的应用程序中添加一个带有circular progress indicator(来自材料设计组件)的倒数计时器,但我在设置初始值时遇到了问题circular progress indicator

以下是我编写的代码的相关部分:

countDownTimer = object : CountDownTimer(60000, 1000) {

                    override fun onTick(millisUntilFinished: Long) {
                        binding.apply {
                            countDownTimer.text =  (millisUntilFinished / 1000).toString()
                            progressIndicator.progress = (millisUntilFinished / 1000).toInt()
                        }
                    }
                    override fun onFinish() {
                        // if 60 secs are finished, then we stop the record
                        stopRecording()
                    }
                }

<androidx.constraintlayout.widget.ConstraintLayout
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_gravity="top|center">

            <TextView
                android:id="@+id/count_down_timer"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_margin="10dp"
                android:textSize="20sp"
                android:textStyle="bold"
                android:background="@color/black"
                android:textColor="@color/white"
                tools:text="60"
                app:layout_constraintTop_toTopOf="parent"
                app:layout_constraintEnd_toEndOf="parent"
                app:layout_constraintStart_toStartOf="parent" />

            <com.google.android.material.progressindicator.CircularProgressIndicator
                android:id="@+id/progress_indicator"
                android:layout_width="0dp"
                android:layout_height="wrap_content"
                app:indicatorColor="@color/navajowhite"
                app:trackCornerRadius="10dp"
                app:indicatorSize="15dp"
                app:layout_constraintEnd_toEndOf="parent"
                app:layout_constraintStart_toStartOf="parent"
                app:layout_constraintBottom_toBottomOf="parent"
                app:layout_constraintTop_toBottomOf="@id/count_down_timer"
                android:layout_margin="10dp"/>

        </androidx.constraintlayout.widget.ConstraintLayout>

我让计数器从 60 秒开始到 0。但我认为我的循环进度指示器的进度值是错误的。因为它的初始启动看起来像这样(我创建了一个草图来向您展示计数器启动时循环进度指示器的初始状态): 在此处输入图像描述

如您所见,圆圈不完整。你看不到的是circular progress indicator从这个到 0 的递减“轨迹”。所以,不知何故,circular progress indicator作品的递减。但出发点是错误的。

我想要的是一个看起来像这样的初始开始: 在此处输入图像描述

我在这里做错了什么?

4

1 回答 1

2

您的进度计算不正确。

progressIndicator.progress = (millisUntilFinished / 1000).toInt()

如果millisUntilFinished == 59000,您最终将获得59. 你应该在这里计算一个百分比而不是这个。

于 2020-12-19T10:27:29.043 回答