Comment utiliser fast scroll dans android?

j'ai une liste d'événements qui sont séparés par mois et par année (juin 2010, juillet 2010, etc.)

je veux activer le défilement rapide, car la liste est vraiment longue.

comment activer fast scroll sur ListViews sous Android?

46
demandé sur mmBs 2012-02-21 13:13:11

8 réponses

dans la méthode oncrée de la Listactivité, utiliser setFastScrollEnabled :

getListView().setFastScrollEnabled(true);
96
répondu Maurice 2015-08-06 08:42:28

utiliser android: fastScrollEnabled dans votre xml:

<ListView
    android:id="@+id/listview_files"
    ...
    android:fastScrollEnabled="true" >
</ListView>
63
répondu aleb 2015-08-06 08:15:50

Essayez ce qui suit

 <?xml version="1.0" encoding="utf-8"?>
    <resources>

    <style name="listviewfastscrollstyle" parent="android:Theme">
        <item name="android:fastScrollTrackDrawable">@drawable/listselector</item>
        <item name="android:fastScrollThumbDrawable">@drawable/listselector</item>
    </style>

</resources>

dans votre manifeste définissez le style comme ceci:

<application android:icon="@drawable/icon" android:label="@string/app_name" android:theme="@style/CustomTheme">

c'est le listview

 <ExpandableListView
        android:id="@android:id/list1"
        android:layout_width="match_parent"
        android:layout_height="0dip"
        android:layout_weight="1"
        android:drawSelectorOnTop="false"
        android:fastScrollAlwaysVisible="true"
        android:fastScrollEnabled="true"
         />
6
répondu anjaly 2013-05-15 10:46:48

si vous voulez être en mesure de personnaliser votre Fast-scroller, comme le choix de votre propre image scroller pour apparaître, je recommande d'utiliser cette source:

https://github.com/nolanlawson/CustomFastScrollViewDemo /

En Gros, votre adaptateur listview devra implémenter un sectionindexer. Cet indexeur de section peut être très dépouillé si vous ne voulez pas compliquer les choses et fournir le défilement rapide simple à travers l'ensemble la longueur de la liste.

la source directe pour le fastscroller est ici:

https://github.com/nolanlawson/CustomFastScrollViewDemo/blob/master/src/com/nolanlawson/customfastscrollviewdemo/CustomFastScrollView.java

placez cette vue autour de votre listview (insérez votre listview à l'intérieur de cette vue dans votre fichier de mise en page xml) et définissez android:fastScrollEnabled=" true " sur votre listview.

vous pourriez également vérifier une réponse précédente: problème D'affichage de défilement rapide avec ListAdapter et SectionIndexer

4
répondu Andreas Rudolph 2017-05-23 11:54:47

je voulais faire quelque chose de similaire à ce que vous vouliez accomplir. Je suis tombé sur ce post . C'est un excellent moyen de mettre en œuvre le défilement rapide sans utiliser L'AlphabetIndexer Android standard, qui nécessite un curseur que vous pourriez ne pas toujours avoir.

en gros, vous devez implémenter L'interface de SectionIndexer dans votre adaptateur. Dans votre cas, au lieu de la lettre, vous montrez la période actuelle que vous faites défiler.

1
répondu argenkiwi 2013-07-08 22:06:11

si vous voulez afficher l'indexation alphabétique, vous pourriez vouloir vérifier ce qui suit:

https://github.com/andraskindler/quickscroll

C'est un projet de bibliothèque que j'ai créé, parce que j'ai eu à utiliser ce motif de défilement dans quelques applications récentes, alors j'ai pensé que d'autres pourraient être intéressés. C'est assez facile à utiliser, voir readme dans le lien github ci-dessus.

0
répondu Andras K 2013-04-11 10:20:55

définissez fastScrollEnabled dans votre xml ou définissez-le à l'exécution lorsque nécessaire.

1)  <ListView
        ...
        android:fastScrollEnabled="true" />

2) mListView.setFastScrollEnabled(true);
0
répondu Pawan Maheshwari 2015-06-18 18:03:11

Dans Le Fichier De Mise En Page:

android: fastScrollEnabled= "true"

, Vous Pouvez Activer par programmation Rapide de la barre de défilement:

getListView().setFastScrollEnabled (true);

0
répondu Md.Tarikul Islam 2017-05-25 08:22:23