Des variantes de cette question peuvent être trouvées partout sur Internet mais pas une réponse.
Je veux une barre de recherche avec une sélection de plage de deux pouces. Je suis prêt à le programmer moi-même mais je manque d'expérience avec Android. Quelqu'un pourrait-il me donner des indications sur où commencer? Je veux dire, je sais que je vais devoir étendre quelque chose (ProgressBar probablement), mais comment dois-je m'y prendre? Dois-je vraiment recréer toutes les fonctionnalités d'une barre de recherche standard, ou existe-t-il un moyen plus simple?
Les solutions complètes sont bien sûr également les bienvenues;)
Moi aussi, je cherchais cela, en vain. J'ai donc créé un nouveau widget, n'hésitez pas à l'utiliser: https://github.com/anothem/Android-range-seek-bar
"Moi aussi, je cherchais cela, en vain. J'ai donc créé un nouveau widget, n'hésitez pas à l'utiliser: https://code.google.com/p/range-seek-bar/ "
Cet exemple lié à Stephan fonctionne très bien! Cependant, l'utilisateur doit appuyer sur l'un des pouces pour obtenir une réponse. Je voulais que si l'utilisateur appuyait sur la barre, le pouce le plus proche se déplacerait vers cette position et fonctionnerait normalement.
J'ai implémenté cela dans l'exemple de code comme ceci:
private final Thumb getClosestThumb(float touchX)
{
double xValue = screenToNormalized(touchX);
return (Math.abs(xValue - normalizedMinValue) < Math.abs(xValue - normalizedMaxValue)) ? Thumb.MIN : Thumb.MAX;
}
Et dans la "public boolean onTouchEvent(MotionEvent event)
",
if(pressedThumb == null),
pressedThumb = getClosestThumb(mDownMotionX);
Une barre de recherche fenêtrée avec des icônes gauche et droite.
Taille de fenêtre minimale préréglable et anti crossover automatique.
Dépôt Mercurial sur https://bitbucket.org/nimbusgb/windowed-seek-bar
J'ai utilisé la bibliothèque anothem/Android-range-seek-bar
https://github.com/anothem/Android-range-seek-bar
En xml
<org.florescu.Android.rangeseekbar.RangeSeekBar
Android:id="@+id/pricebar_with_label"
Android:layout_width="match_parent"
Android:layout_height="wrap_content"
rsb:absoluteMinValue="20"
rsb:absoluteMaxValue="150"
Android:layout_marginLeft="10dp"
Android:layout_marginRight="10dp"
/>
This est l'un des meilleurs que je puisse suggérer.