卸载安卓应用或进行某些配置时,会显示如下所示的水平进度条:
它的样式与 @android:style/Widget.ProgressBar.Horizontal
不同。
如何在我的应用中使用它?
卸载安卓应用或进行某些配置时,会显示如下所示的水平进度条:
它的样式与 @android:style/Widget.ProgressBar.Horizontal
不同。
如何在我的应用中使用它?
只需添加一行STYLE代码,您的进度条就会变成水平:
<ProgressBar
style="?android:attr/progressBarStyleHorizontal"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:id="@+id/progress"
android:layout_centerHorizontal="true"
android:layout_centerVertical="true"
android:max="100"
android:progress="45"/>
使用新进度条
style="?android:attr/progressBarStyleHorizontal"
使用旧的灰色进度条,请使用
style="@android:style/Widget.ProgressBar.Horizontal"
在这个选项中,您可以通过设置minHeight来更改高度。
完整的XML代码如下:
<ProgressBar
android:id="@+id/pbProcessing"
style="?android:attr/progressBarStyleHorizontal"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_below="@+id/tvProcessing"
android:indeterminateOnly="true"/>
当设置indeterminateOnly为true时,可以获取到不确定状态的水平进度条。
如果我在手机上设置了android:indeterminate="true"
,那么这就是我手机上的Widget.ProgressBar.Horizontal
。
布局中的进度条
<ProgressBar
android:id="@+id/download_progressbar"
android:layout_width="200dp"
android:layout_height="24dp"
android:background="@drawable/download_progress_bg_track"
android:progressDrawable="@drawable/download_progress_style"
style="?android:attr/progressBarStyleHorizontal"
android:indeterminate="false"
android:indeterminateOnly="false" />
download_progress_style.xml
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
<item android:id="@android:id/progress">
<scale
android:useIntrinsicSizeAsMinimum="true"
android:scaleWidth="100%"
android:drawable="@drawable/store_download_progress" />
</item>
</layer-list>
store_download_progress.xml
<?xml version="1.0" encoding="UTF-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android">
<solid android:color="#ff207d94" />
</shape>
LinearProgressIndicator
来创建它,还有很多自定义选项。<com.google.android.material.progressindicator.LinearProgressIndicator
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:indeterminate="true" />
https://material.io/components/progress-indicators/android#using-progress-indicators
在Jetpack Compose中,您可以使用LinearProgressIndicator
进行颜色和背景自定义,并且还可以设置进度。LinearProgressIndicator()
对我来说有效,你可以尝试相同的方法
<ProgressBar
android:id="@+id/determinateBar"
android:indeterminateOnly="true"
android:indeterminateDrawable="@android:drawable/progress_indeterminate_horizontal"
android:indeterminateDuration="10"
android:indeterminateBehavior="repeat"
android:progressBackgroundTint="#208afa"
android:progressBackgroundTintMode="multiply"
android:minHeight="24dip"
android:maxHeight="24dip"
android:layout_width="match_parent"
android:layout_height="10dp"
android:visibility="visible"/>
然后,您可以将此样式添加到进度条中:
?android:attr/progressBarStyleHorizontal
那么你的进度条将会是这样:
<ProgressBar
android:id="@+id/loading"
android:layout_width="match_parent"
android:layout_height="wrap_content"
style="?android:attr/progressBarStyleHorizontal"
android:progress="10"
android:layout_margin="10dp"
android:indeterminate="false" />