L'utilisation de setProgressDrawable
pour un ProgressBar
avec des couleurs personnalisées ne fonctionne pas correctement pour nous. Nous utilisons des barres de progression dans les lignes d'un ListView
, mais la progression n'est affichée que s'il y a plus d'un élément dans la liste. Dans le cas d'un élément, la barre de progression est vide.Problème lié à l'utilisation de ProgressBar.setProgressDrawable
CursorAdapter.java:
public class CursorAdapter extends SimpleCursorAdapter {
public CursorAdapter(Context context, int layout, Cursor c, String[] from,
int[] to) {
super(context, layout, c, from, to);
}
public void bindView(View view, Context context, Cursor cursor) {
super.bindView(view, context, cursor);
updateProgressbar(view, cursor);
}
/**
* This method updates the progressbar using the "numberpages" and
* "currentpage" values.
*/
private void updateProgressbar(View view, Cursor cursor) {
ProgressBar progressBar = (ProgressBar) view
.findViewById(R.id.progressbarHorizontal);
progressBar.setProgressDrawable(view.getResources().getDrawable(
R.drawable.greenprogress));
progressBar.setMax(cursor.getInt(cursor.getColumnIndex("numberpages")));
progressBar.setProgress(cursor.getInt(cursor
.getColumnIndex("currentpage")));
}
}
/res/drawable/greenprogress.xml:
<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
<item android:id="@android:id/background">
<shape>
<corners android:radius="5dip" />
<gradient
android:startColor="#ff9d9e9d"
android:centerColor="#ff5a5d5a"
android:centerY="0.75"
android:endColor="#ff747674"
android:angle="270"
/>
</shape>
</item>
<item android:id="@android:id/secondaryProgress">
<clip>
<shape>
<corners android:radius="5dip" />
<gradient
android:startColor="#80ffd300"
android:centerColor="#80ffb600"
android:centerY="0.75"
android:endColor="#a0ffcb00"
android:angle="270"
/>
</shape>
</clip>
</item>
<item android:id="@android:id/progress">
<clip>
<shape>
<corners
android:radius="5dip" />
<gradient
android:startColor="#33FF33"
android:endColor="#008000"
android:angle="270" />
</shape>
</clip>
</item>
</layer-list>
Quel est le problème avec ce code et pourquoi il ne fonctionne que s'il y a plus d'un éléments la liste? Sans définir un style ProgressBar personnalisé, tout fonctionne correctement. La méthode setProgressDrawable semble poser problème.
Merci de votre aide.
Nous vous remercions de votre réponse. Nous avons résolu le problème en mettant en place notre propre barre de progression. – Dekar
Cela a résolu le bug apparent pour moi. Merci –