How to use fast scroll in android?

别来无恙 提交于 2019-12-03 01:38:09

问题


I have a list of events which are seperated by month and year (Jun 2010, Jul 2010 etc.)

I want to enable fast scrolling because the list is really long.

How do I enable fast scroll on ListViews in Android?


回答1:


In the onCreate method of the ListActivity use setFastScrollEnabled:

getListView().setFastScrollEnabled(true);



回答2:


Use android:fastScrollEnabled in your xml:

<ListView
    android:id="@+id/listview_files"
    ...
    android:fastScrollEnabled="true" >
</ListView>



回答3:


Try the following

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

In your Manifest set the style like this:

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

this is the 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"
         />



回答4:


If you want to be able to customize your Fast-scroller, like choosing your own scroller image to appear, I recommend using this source:

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

Basically, your listview adapter will have to implement a sectionindexer. This section indexer can be very stripped if you don't want to complicate things and provide simple fastscrolling though the entire length of the list.

The direct source for the fastscroller is here:

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

Place this view around your listview (nest your listview inside this view in your xml layout file) and set android:fastScrollEnabled="true" on your listview.

You might also want to check out a previous answer: Fast Scroll display problem with ListAdapter and SectionIndexer




回答5:


I wanted to do something similar to what you wanted to achieve. I bumped into this post. It is a great way to implement fast scrolling without using the standard Android AlphabetIndexer, which requires a Cursor you might not always have.

Basically, you would have to implement the SectionIndexer interface in your adapter. In your case, instead of the current letter, you would show the current period as you scroll.




回答6:


Within Layout File :

android:fastScrollEnabled="true"

You Can programmatically Enable Fast scroll bar:

getListView().setFastScrollEnabled(true);




回答7:


If you want to show alphabetical indexing, you might want to check this out:

https://github.com/andraskindler/quickscroll

This is a library project I created, because I had to use this scrolling pattern in a few recent apps, so I thought others might be interested in it. It's fairly easy to use, see readme in the github link above.




回答8:


Either define fastScrollEnabled in your xml or set it at run-time when needed.

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

2) mListView.setFastScrollEnabled(true);


来源:https://stackoverflow.com/questions/9374830/how-to-use-fast-scroll-in-android

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!