47

月と年 (2010 年 6 月、2010 年 7 月など) で区切られたイベントのリストがあります。

リストが非常に長いため、高速スクロールを有効にしたい。

ListViewsAndroid で高速スクロールを有効にするにはどうすればよいですか?

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/

基本的に、リストビュー アダプターはセクションインデクサーを実装する必要があります。このセクション インデクサーは、物事を複雑にしたくない場合や、リストの全長にわたって単純な高速スクロールを提供したくない場合は、非常に単純なものにすることができます。

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 を使用せずに高速スクロールを実装するための優れた方法です。これには、常に必要とは限らない Cursor が必要です。

基本的に、アダプターに SectionIndexer インターフェースを実装する必要があります。あなたの場合、現在の文字の代わりに、スクロールすると現在の期間が表示されます。

于 2013-07-08T22:06:11.463 に答える
0

xml で fastScrollEnabled を定義するか、必要に応じて実行時に設定します。

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

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