如何在android中使用快速滚动?

时间:2012-02-21 09:13:11

标签: android android-listview fastscroll

我列出了按月和年分开的事件列表(2010年6月,2010年7月等)

我想启用快速滚动,因为列表非常长。

如何在Android中的ListViews启用快速滚动?

8 个答案:

答案 0 :(得分:98)

在ListActivity的onCreate方法中,使用setFastScrollEnabled

getListView().setFastScrollEnabled(true);

答案 1 :(得分:65)

在xml中使用android:fastScrollEnabled

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

答案 2 :(得分:6)

尝试以下

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

在你的Manifest中设置这样的风格:

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

这是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"
         />

答案 3 :(得分:4)

如果您希望能够自定义快速滚动条,例如选择要显示的滚动条图像,我建议使用此来源:

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

基本上,listview适配器必须实现sectionindexer。如果您不想使事情复杂化并提供简单快速滚动列表的整个长度,则可以非常剥离此节索引器。

fastscroller的直接来源是:

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

将此视图放在listview周围(将列表视图嵌入xml布局文件中的此视图中)并在列表视图中设置android:fastScrollEnabled =“true”。

您可能还想查看以前的答案:Fast Scroll display problem with ListAdapter and SectionIndexer

答案 4 :(得分:1)

我想做一些类似于你想要达到的目标。我碰到了this post。这是一种在不使用标准Android AlphabetIndexer的情况下实现快速滚动的好方法,它需要一个你可能并不总是拥有的Cursor。

基本上,您必须在适配器中实现SectionIndexer接口。在您的情况下,您将在滚动时显示当前时段而不是当前字母。

答案 5 :(得分:0)

如果要显示按字母顺序排列的索引,可能需要检查一下:

https://github.com/andraskindler/quickscroll

这是我创建的一个库项目,因为我必须在最近的几个应用程序中使用这种滚动模式,所以我认为其他人可能会对它感兴趣。它相当容易使用,请参阅上面github链接中的自述文件。

答案 6 :(得分:0)

在xml中定义fastScrollEnabled或在需要时在运行时设置它。

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

2) mListView.setFastScrollEnabled(true);

答案 7 :(得分:0)

在布局文件中:

  

机器人:fastScrollEnabled = “真”

您可以通过编程方式启用快速滚动条:

  

getListView()setFastScrollEnabled(真);