47

我有一个按月和年(2010 年 6 月、2010 年 7 月等)分隔的事件列表

我想启用快速滚动,因为列表真的很长。

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

4

7 回答 7

98

在 ListActivity 的 onCreate 方法中使用setFastScrollEnabled

getListView().setFastScrollEnabled(true);
于 2012-02-21T09:26:35.683 回答
67

在您的 xml 中使用android:fastScrollEnabled :

<ListView
    android:id="@+id/listview_files"
    ...
    android:fastScrollEnabled="true" >
</ListView>
于 2012-03-30T01:07:45.950 回答
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>

在您的清单中设置如下样式:

<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"
         />
于 2013-05-15T10:46:48.593 回答
4

如果您希望能够自定义您的快速滚动条,例如选择您自己的滚动条图像来显示,我推荐使用这个源:

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

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

fastscroller 的直接来源在这里:

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

将此视图放在您的列表视图周围(将您的列表视图嵌套在您的 xml 布局文件中的此视图中)并在您的列表视图上设置 android:fastScrollEnabled="true"。

您可能还想查看以前的答案:ListAdapter 和 SectionIndexer 的快速滚动显示问题

于 2012-04-02T21:25:44.737 回答
1

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

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

于 2013-07-08T22:06:11.463 回答
1

在布局文件中:

安卓:fastScrollEnabled="真"

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

getListView().setFastScrollEnabled(true);

于 2017-05-25T08:22:23.487 回答
0

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

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

2) mListView.setFastScrollEnabled(true);
于 2015-06-18T18:03:11.563 回答