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 ?
Réponses
Trop de publicités?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" />
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.
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.
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.
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>