如何停止Android圆形ProgressBar旋转并设置为100%加载状态?
解决方法:停止旋转并设置为100%圆形进度
你用的?android:attr/progressBarStyle是不确定进度的旋转加载样式,这种模式下ProgressBar只负责显示“加载中”的动画,不支持设置具体进度值,所以你修改progress参数才没效果。不用做自定义ProgressBar,调整配置就能实现需求:
方案1:直接在XML中设置
把ProgressBar改成确定进度模式,同时使用支持圆形确定进度的样式,XML代码修改如下:
<ProgressBar android:id="@+id/progressBar" style="@style/Widget.AppCompat.ProgressBar.Circular" android:layout_width="167dp" android:layout_height="170dp" android:layout_gravity="center" android:layout_marginBottom="48dp" android:indeterminate="false" android:max="100" android:progress="100" />
核心是这两个属性:
android:indeterminate="false":关闭不确定旋转模式,启用可设置进度的模式android:progress="100":直接设置为满进度,显示完整圆形
方案2:动态切换(比如从加载状态切换到完成状态)
如果需要在代码里控制状态切换(比如一开始旋转加载,完成后改为100%圆形),可以用以下代码:
ProgressBar progressBar = findViewById(R.id.progressBar); // 关闭旋转动画,切换到可设置进度的模式 progressBar.setIndeterminate(false); // 设置进度最大值和当前满进度 progressBar.setMax(100); progressBar.setProgress(100);
这样就能直接停止旋转,显示完整的满进度圆形,无需自定义ProgressBar。
内容的提问来源于stack exchange,提问作者Alex20280
相关产品推荐
相关产品推荐

