144 votes

Suppression du rembourrage vertical de la barre d'avancement horizontale

Par défaut, la barre de progression présente un certain remplissage au-dessus et au-dessous de la barre elle-même. Existe-t-il un moyen de supprimer ce rembourrage afin de n'avoir que la barre à la fin ?

7voto

ahmed ewess Points 185

Si quelqu'un cherche encore une solution, consultez ce commentaire.

fixer la hauteur minimale à 4 dp

   android:minHeight="4dp"

-

  <ProgressBar
    android:id="@+id/web_view_progress_bar"
    style="@style/Widget.AppCompat.ProgressBar.Horizontal"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:indeterminate="false"
    android:max="100"
    android:min="0"
    android:progress="5"
    android:minHeight="4dp"
    android:progressTint="@color/vodafone_red"
    app:layout_constraintEnd_toEndOf="parent"
    app:layout_constraintStart_toStartOf="parent"
    app:layout_constraintTop_toTopOf="parent"
    tools:progress="60" />

5voto

Stephen Talley Points 327

La réponse de Subin semble être la seule (actuellement) qui ne soit pas un piratage fragile susceptible d'être cassé dans les futures versions de la barre de progression Android.

Mais plutôt que de me donner la peine d'extraire les ressources, de les modifier et de les maintenir indéfiniment, j'ai opté pour l'utilisation de l'outil de gestion des ressources. Bibliothèque MaterialProgressBar qui le fait pour nous :

<me.zhanghai.android.materialprogressbar.MaterialProgressBar
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:indeterminate="true"
    android:layout_gravity="bottom"
    custom:mpb_progressStyle="horizontal"
    custom:mpb_showTrack="false"
    custom:mpb_useIntrinsicPadding="false"
    style="@style/Widget.MaterialProgressBar.ProgressBar.Horizontal.NoPadding"
/>

Dans build.gradle :

// Android horizontal ProgressBar doesn't allow removal of top/bottom padding
compile 'me.zhanghai.android.materialprogressbar:library:1.1.6'

Ce projet a un bonne démo qui montre les différences entre cette barre et la barre de progression intégrée.

2voto

Andrii Volynets Points 21

J'utilise minHeight et maxHeigh. C'est utile pour les différentes versions de l'API.

<ProgressBar
    android:id="@+id/progress_bar"
    style="@style/Base.Widget.AppCompat.ProgressBar.Horizontal"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:maxHeight="3dp"
    android:minHeight="3dp" />

Il doit utiliser les deux. L'Api 23 fonctionne bien avec

android:layout_height="wrap_content"
android:minHeight="0dp"

Mais les versions inférieures de l'Api augmentent la hauteur de la barre de progression à maxHeight dans ce cas.

2voto

DaveNOTDavid Points 1049

Essayez ce qui suit :

<ProgressBar
    android:id="@+id/progress_bar"
    style="@android:style/Widget.ProgressBar.Horizontal"
    android:progress="25"
    android:progressTint="@color/colorWhite"
    android:progressBackgroundTint="@color/colorPrimaryLight"
    android:layout_width="match_parent"
    android:layout_height="4dp" />

... puis configurez la barre de progression selon vos besoins puisqu'elle affichera initialement une barre de taille moyenne avec une teinte de progression de couleur jaune avec une teinte de fond de progression grisâtre. Remarquez également qu'il n'y a pas de remplissage vertical.

2voto

alizulfuqar Points 43

Utilisez comme ceci, à l'intérieur de Linearlayout

 <LinearLayout
     android:layout_width="match_parent"
     android:background="#efefef"
     android:layout_height="wrap_content">

     <ProgressBar
         android:id="@+id/progressBar"
         android:layout_width="fill_parent"
         android:layout_height="wrap_content"
         android:indeterminate="true"
         android:visibility="gone"
         android:layout_marginTop="-7dp"
         android:layout_marginBottom="-7dp"
         style="@style/Widget.AppCompat.ProgressBar.Horizontal" />
 </LinearLayout>

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X