Як створити горизонтальну панель прогресу завантаження?


81

При видаленні програми Android або при виконанні певної конфігурації відображатиметься така горизонтальна панель прогресу, як наступне зображення:

індикатор виконання

Це не той самий стиль, як @android:style/Widget.ProgressBar.Horizontal.

Як використовувати його у власному додатку?


Відповіді:


70

Це Widget.ProgressBar.Horizontalна моєму телефоні, якщо я встановивandroid:indeterminate="true"


7
Крім того, не забудьте встановити висоту wrap_content(або щось більше), я втратив майже годину, щоб зрозуміти, чому індикатор прогресу не відображається ... -.-
milosmns

182

Просто додайте рядок 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"/>

Він працює, але не динамічний турнік ... потрібен постійний на
ході

+1, оскільки це перший варіант, який працював у мене. Як встановити колір прогресу (не тла)?
Таслім Осені

1
@TaslimOseni ви можете встановити колір смуги прогресу за допомогою progress.setProgressTintList (ColorStateList.valueOf (Color.GREEN));
Akash kumar

63

Для використання нової індикації прогресу

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 для отримання невизначеної горизонтальної смуги прогресу


1
У чому різниця між двома стилями?
TWiStErRob

12

Індикатор прогресу в макеті

<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" />

завантажити_прогрес_стиль.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>


4

Працював у мене, можна спробувати з тим же

<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"/>
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.