Material Linear ProgressBar

根據材料檔案

線性進度指示器應始終從 0%填充到 100%,並且永遠不會減少值。
它應該由標題或表格邊緣上的條形表示,並顯示和消失。

要使用材質 Linear ProgressBar,只需在 xml 中使用:

<ProgressBar
    android:id="@+id/my_progressBar"  
    style="@style/Widget.AppCompat.ProgressBar.Horizontal"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"/>

https://i.stack.imgur.com/rB8wu.gif

不定

要建立不確定的 ProgressBar,請將 android:indeterminate 屬性設定為 true

<ProgressBar
    android:id="@+id/my_progressBar"  
    style="@style/Widget.AppCompat.ProgressBar.Horizontal"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:indeterminate="true"/>

確定的

要建立確定的 ProgressBar,請將 android:indeterminate 屬性設定為 false 並使用 android:maxandroid:progress 屬性:

<ProgressBar  
    android:id="@+id/my_progressBar"
    style="@style/Widget.AppCompat.ProgressBar.Horizontal"
    android:indeterminate="false"
    android:max="100"
    android:progress="10"/>

只需使用此程式碼更新值:

ProgressBar progressBar = (ProgressBar) findViewById(R.id.my_progressBar);  
progressBar.setProgress(20);

緩衝

要使用 ProgressBar 建立緩衝效果,請將 android:indeterminate 屬性設定為 false 並使用 android:maxandroid:progressandroid:secondaryProgress 屬性:

<ProgressBar  
    android:id="@+id/my_progressBar"
    style="@style/Widget.AppCompat.ProgressBar.Horizontal"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:indeterminate="false"
    android:max="100"
    android:progress="10"
    android:secondaryProgress="25"/>

緩衝區值由 android:secondaryProgress 屬性定義。
只需使用此程式碼更新值:

ProgressBar progressBar = (ProgressBar) findViewById(R.id.my_progressBar);
progressBar.setProgress(20);
progressBar.setSecondaryProgress(50);  

不確定和確定

要獲得這種 ProgressBar,只需使用 android:indeterminate 屬性的不確定 ProgressBar 為 true。

<ProgressBar  
    android:id="@+id/progressBar"
    style="@style/Widget.AppCompat.ProgressBar.Horizontal"
    android:indeterminate="true"/>

然後,當你需要從不確定切換到確定進度時使用 setIndeterminate() 方法。

ProgressBar progressBar = (ProgressBar) findViewById(R.id.my_progressBar);  
progressBar.setIndeterminate(false);