【发布时间】:2018-11-26 18:09:45
【问题描述】:
我有大约 3 分钟的计时器,我添加了一个 progress bar,在每个 1860 milliseconds. 之后添加 1 个进度条
所以在1860000 毫秒后它完成了进度。
问题是它在开始时填充进度条,并且不显示加载动画。
这是我的代码。
countDownTimer=new CountDownTimer(186000, 1860) {
public void onTick(long millisUntilFinished) {
progressBar.setProgress(time+=1);
Log.d("seconds remaining: ", String.valueOf(time));
}
public void onFinish() {
finish();
time=0;
}
}.start();
}
布局文件
<ProgressBar
android:id="@+id/progressBar"
style="@style/Widget.AppCompat.ProgressBar.Horizontal"
android:layout_width="0dp"
android:layout_height="4dp"
android:layout_marginTop="30dp"
android:max="100"
android:progressDrawable="@drawable/progressbar_background"
app:layout_constraintEnd_toStartOf="@+id/guideline9"
app:layout_constraintHorizontal_bias="0.0"
app:layout_constraintStart_toStartOf="@+id/guideline10"
app:layout_constraintTop_toBottomOf="@+id/imageView19" />
如果我删除progressDialog.setProgress() 方法,它会显示空的进度条,如果我添加这一行,progress bar 会在开始时自动填充。
【问题讨论】:
-
你从哪里得到变量“时间”?它的价值是什么?
-
开始时为 0
-
您使用的是单独的线程吗?在这种情况下,您应该考虑使用 runOnUiThread 活动的方法,即使 CoundDownTimer 使用内部处理程序。您能否显示创建 CountDownTimer 的完整代码?
-
另外,您是否尝试过在 XML 布局元素中添加 android:progress=0?
-
我在主 UI 线程中单击按钮时启动它。我也试过设置
10 & 5的值,但如果我设置任何值,它只会填满整个进度条
标签: android android-layout android-progressbar