Android
Définir la valeur de pas (incrément) pour RangeSeekBar personnalisé
Recherche…
Introduction
Une personnalisation de la gamme Android RangeSeekBar proposée par Alex Florescu sur https://github.com/anothem/android-range-seek-bar
Il permet de définir une valeur de pas (incrément), lors du déplacement de la barre de recherche
Remarques
1- Ajouter l'attribut d'incrément dans attrs.xml
<attr name="increment" format="integer|float"/>
2- Définir une valeur par défaut dans RangeSeekBar.java et créer l’attribut également
private static final int DEFAULT_INCREMENT = 1;
private int increment;
3- Initier la valeur d'incrémentation dans le paramètre privé void init (Contexte contextuel, AttributeSet attrs)
if (attrs == null)
increment = DEFAULT_INCREMENT;
else
increment = a.getInt(R.styleable.RangeSeekBar_increment, DEFAULT_INCREMENT);
4- Définir la valeur d'incrémentation dans un void onDraw synchronisé protégé (@NonNull Canvas canvas)
Vous devrez remplacer la valeur minText et maxText. Donc au lieu de:
- minText = valueToString (getSelectedMinValue ());
- maxText = valueToString (getSelectedMaxValue ());
Vous aurez: int x;
x = (int) ((getSelectedMinValue().intValue()+increment)/increment);
x = x*increment;
if (x<absoluteMaxValue.intValue())
minText = ""+x;
else
minText=""+(absoluteMaxValue.intValue()-increment);
x = (int) ((getSelectedMaxValue().intValue()+increment)/increment);
x = x*increment;
maxText = ""+x;
5 - Il ne vous reste plus qu'à l'utiliser. J'espère que cela aide
Définir une valeur de pas de 7
<RangeSeekBar
android:id="@+id/barPrice"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
app:barHeight="0.2dp"
app:barHeight2="4dp"
app:increment="7"
app:showLabels="false" />
Modified text is an extract of the original Stack Overflow Documentation
Sous licence CC BY-SA 3.0
Non affilié à Stack Overflow