Как использовать быструю прокрутку в Android? - PullRequest
48 голосов
/ 21 февраля 2012

У меня есть список событий, разделенных по месяцам и годам (июнь 2010 г., июль 2010 г. и т. Д.)

Я хочу включить быструю прокрутку, поскольку список действительно длинный.

Как включить быструю прокрутку на ListViews в Android?

Ответы [ 8 ]

98 голосов
/ 21 февраля 2012

В методе onCreate ListActivity используйте setFastScrollEnabled :

getListView().setFastScrollEnabled(true);
65 голосов
/ 30 марта 2012

Использование android: fastScrollEnabled в вашем xml:

<ListView
    android:id="@+id/listview_files"
    ...
    android:fastScrollEnabled="true" >
</ListView>
6 голосов
/ 15 мая 2013

Попробуйте следующее

 <?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>

В вашем манифесте установите стиль следующим образом:

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

это список

 <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"
         />
4 голосов
/ 03 апреля 2012

Если вы хотите настроить быструю прокрутку, например, выбрать свой собственный образ скроллера, я рекомендую использовать этот источник:

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

По сути, в вашем адаптере списка просмотра должен быть реализован индексатор разделов. Этот индексатор разделов может быть очень раздроблен, если вы не хотите усложнять ситуацию и обеспечивать простую быструю прокрутку по всей длине списка.

Прямой источник для fastscroller здесь:

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

Поместите этот вид вокруг вашего списка (вложите свой список в это представление в файле макета xml) и установите android: fastScrollEnabled = "true" в вашем списке.

Возможно, вы захотите проверить предыдущий ответ: Проблема с быстрой прокруткой при использовании ListAdapter и SectionIndexer

1 голос
/ 09 июля 2013

Я хотел сделать что-то похожее на то, что вы хотели достичь.Я наткнулся на этот пост .Это отличный способ реализовать быструю прокрутку без использования стандартного Android AlphabetIndexer, для которого требуется курсор, который может быть не всегда.

По сути, вам потребуется реализовать интерфейс SectionIndexer в вашем адаптере.В вашем случае вместо текущей буквы вы будете показывать текущий период при прокрутке.

0 голосов
/ 25 мая 2017

в файле макета:

андроида: fastScrollEnabled = "истинный"

Вы можете программно включить быструю полосу прокрутки:

getListView () setFastScrollEnabled (истина);.

0 голосов
/ 18 июня 2015

Либо определите fastScrollEnabled в своем XML-файле, либо установите его во время выполнения при необходимости.

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

2) mListView.setFastScrollEnabled(true);
0 голосов
/ 11 апреля 2013

Если вы хотите показать алфавитную индексацию, вы можете проверить это:

https://github.com/andraskindler/quickscroll

Это библиотечный проект, который я создал, потому что мне пришлось использовать этот шаблон прокрутки в нескольких недавних приложениях, поэтому я подумал, что другие могут быть заинтересованы в нем. Его довольно просто использовать, см. Readme в ссылке на github выше.

...