材质组件库
您可以将 LinearProgressIndicator 与 android:indeterminate="true" 属性一起使用:
<com.google.android.material.progressindicator.LinearProgressIndicator
android:indeterminate="true"
app:indicatorColor="?attr/colorPrimary"/>
您还可以使用不同的颜色:
<com.google.android.material.progressindicator.LinearProgressIndicator
android:indeterminate="true"
app:indicatorColor="@array/progress_colors"
app:indeterminateAnimationType="contiguous"/>
与:
<integer-array name="progress_colors">
<item>@color/...</item>
<item>@color/....</item>
<item>@color/....</item>
</integer-array>
您还可以使用 CircularProgressIndicator 组件来设置循环进度指示器:
<com.google.android.material.progressindicator.CircularProgressIndicator
android:indeterminate="true"
app:indicatorColor="?attr/colorPrimary"/>
注意:它需要至少版本1.3.0-alpha04
Jetpack 组合
对于1.0.x,您可以使用LinearProgressIndicator 或CircularProgressIndicator
// Indeterminate
CircularProgressIndicator()
LinearProgressIndicator()
// Determinate
CircularProgressIndicator(progress = ..)
LinearProgressIndicator(progress = ..)
例子:
var progress by remember { mutableStateOf(0.1f) }
LinearProgressIndicator(
backgroundColor = Color.White,
progress = progress,
color = Blue
)
AppCompat
您可以使用带有 AppCompat 样式的ProgressBar。
只需在你的布局中添加这个:
<ProgressBar
style="@style/Base.Widget.AppCompat.ProgressBar"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:indeterminate="true"
android:visibility="visible" />
如果您想要水平进度条,请使用:
<ProgressBar
style="@style/Base.Widget.AppCompat.ProgressBar.Horizontal"
android:layout_width="match_parent"
android:layout_height="8dp"
android:layout_marginTop="24dp"
android:indeterminate="true"
android:visibility="visible" />
他们关注官方资料guidelines。