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 ?

2voto

pogo Points 53

Pour moi, cela fonctionne. La barre de progression est nette. Elle s'adapte parfaitement. J'ai essayé avec différentes hauteurs de cadre et de progression.

<FrameLayout             
    android:layout_width="match_parent"             
    android:layout_height="4dp">    

   <ProgressBar
       style="?android:attr/progressBarStyleHorizontal"
       android:layout_width="match_parent"
       android:layout_height="16dp"
       android:layout_gravity="center"
       android:indeterminate="true"/>
</FrameLayout>

aperçu

1voto

user1145905 Points 31

L'ajout de Android:progressDrawable à une liste de couches définie dans drawable a réglé le problème pour moi. Cela fonctionne en masquant la barre de progression dans un drawable personnalisé.

exemple de mise en œuvre décrit à https://stackoverflow.com/a/4454450/1145905

1voto

Anthony Points 1697

J'utilise style="@style/Widget.AppCompat.ProgressBar.Horizontal" et il était assez facile de se débarrasser des marges. Ce style est :

    <item name="progressDrawable">@drawable/progress_horizontal_material</item>
    <item name="indeterminateDrawable">@drawable/progress_indeterminate_horizontal_material</item>
    <item name="minHeight">16dip</item>
    <item name="maxHeight">16dip</item>

Je viens de passer outre la hauteur min/max :

    <ProgressBar
        style="@style/Widget.AppCompat.ProgressBar.Horizontal"
        android:layout_width="match_parent"
        android:layout_height="2dp"
        android:indeterminate="true"
        android:minHeight="2dp"
        android:maxHeight="2dp" />

1voto

kcg Points 685

Utilisez simplement le Material ProgressIndicator qui n'a pas de marge cachée.

<com.google.android.material.progressindicator.ProgressIndicator
        android:id="@+id/progressBar"
        style="@style/Widget.MaterialComponents.ProgressIndicator.Linear.Indeterminate"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        app:indicatorColor="@color/colorPrimary"
        app:trackColor="@color/colorAccent" />

0voto

ben75 Points 11322

Vous avez le setPadding() pour le faire de manière programmatique. ( doc )

Ou vous pouvez utiliser android:paddingLeft="0px" et android:paddingRight="0px" en xml.

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