Android圆形进度条

3
我需要制作一个圆形进度条,仅在接收数据时旋转。我在布局中编写了以下内容:
        <ProgressBar
            android:id="@+id/progress_bar"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:indeterminateOnly="true"
            style="?android:attr/progressBarStyleSmall"
            />

然后接收到数据部分,我做了...

mProgressBar.incrementProgressBy(10);

我最初认为mProgressBar应该停止旋转,但即使连接未建立,它仍然会永久旋转!

我应该怎么做才能让ProgressBar在最初停止并在接收到另一部分数据时旋转?


使用handler或AsyncTask来下载数据,并在下载完成后显示进度条,然后发送消息给handler以停止(invisible或gone)进度条。 - Taruni
4个回答

5

无法停止不确定进度条。您可以创建自定义进度条或对不确定的可绘制对象进行小技巧。

您可以在进度条上方放置一个ImageView,并在其中设置相同的可绘制对象。

当您想要停止动画时,隐藏进度条并显示ImageView。

当您想要启动动画时,隐藏ImageView并显示进度条。

这应该会给您相同的效果。


1

在布局中使用visiblegone来控制可见性。


0

当你完成工作时,请调用此行。

 mProgressBar.dismiss();

0

抱歉,您无法使用不确定进度条来实现该目标。该控件旨在显示后台正在执行某些操作的情况,但没有指示操作何时开始或何时结束。

因此,您必须使用确定性进度条,或创建自己的自定义组件。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接