如何创建水平加载进度条?

Fre*_*ind 62 android android-progressbar

卸载Android应用程序或进行一些配置时,会显示这样一个水平进度条,如下图所示:

进度条

它的风格不一样@android:style/Widget.ProgressBar.Horizontal.

如何在我自己的应用程序中使用它?

小智 144

只需添加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"/>
Run Code Online (Sandbox Code Playgroud)


Ser*_*tov 61

Widget.ProgressBar.Horizontal如果我设置的话,它就在我的手机上android:indeterminate="true"

  • 另外,一定要将高度设置为`wrap_content`(或更大的东西),我已经失去了将近一个小时来弄清楚为什么进度条没有显示... -.- (7认同)

Jas*_*aur 49

使用新的进度条

style="?android:attr/progressBarStyleHorizontal"
Run Code Online (Sandbox Code Playgroud)

用于旧的灰色进度条使用

style="@android:style/Widget.ProgressBar.Horizontal"
Run Code Online (Sandbox Code Playgroud)

在这一个你可以选择通过设置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"/>
Run Code Online (Sandbox Code Playgroud)

indeterminateOnly设置为true以获取不确定的水平进度条


Amr*_*per 12

现在,您可以使用材料设计轻松创建它LinearProgressIndicator,并进行大量定制

<com.google.android.material.progressindicator.LinearProgressIndicator
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:indeterminate="true" />
Run Code Online (Sandbox Code Playgroud)

检查 MaterialDesign 链接以获取更多信息和代码示例

https://material.io/components/progress-indicators/android#using-progress-indicators

在 Jetpack Compose 中,您可以使用LinearProgressIndicator颜色和背景自定义,也可以设置进度

LinearProgressIndicator()
Run Code Online (Sandbox Code Playgroud)


ven*_*lee 7

布局中的进度条

<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" />
Run Code Online (Sandbox Code Playgroud)

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>
Run Code Online (Sandbox Code Playgroud)


Tar*_*Ray 6

为我工作,可以尝试使用相同的

<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"/>
Run Code Online (Sandbox Code Playgroud)