我列出了按月和年分开的事件列表(2010年6月,2010年7月等)
我想启用快速滚动,因为列表非常长。
如何在Android中的ListViews
启用快速滚动?
答案 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的直接来源是:
将此视图放在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(真);