web-dev-qa-db-ja.com

Androidで高速スクロールを使用するには?

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

リストが本当に長いので、高速スクロールを有効にしたいと思います。

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

48
Rakshi

ListActivityのonCreateメソッドで setFastScrollEnabled を使用します。

getListView().setFastScrollEnabled(true);
98
Maurice

Xmlで Android:fastScrollEnabled を使用します。

<ListView
    Android:id="@+id/listview_files"
    ...
    Android:fastScrollEnabled="true" >
</ListView>
65
user942821

以下をお試しください

 <?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"
         />
6
anjaly

表示する独自のスクローラー画像を選択するなど、Fast-scrollerをカスタマイズできるようにするには、次のソースを使用することをお勧めします。

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の高速スクロール表示の問題

4
Andreas Rudolph

私はあなたが達成したいものに似た何かをしたかった。 この投稿 にぶつかりました。これは、標準のAndroid AlphabetIndexerを使用せずに高速スクロールを実装するのに最適な方法です。

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

1
argenkiwi

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

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

2) mListView.setFastScrollEnabled(true);
0

アルファベット順のインデックスを表示したい場合は、これを確認することをお勧めします。

https://github.com/andraskindler/quickscroll

最近のいくつかのアプリでこのスクロールパターンを使用しなければならなかったため、これは私が作成したライブラリプロジェクトです。使い方はかなり簡単です。上のgithubリンクのreadmeをご覧ください。

0
Andras K

レイアウトファイル内:

Android:fastScrollEnabled = "true"

プログラムで高速スクロールバーを有効にできます。

getListView()。setFastScrollEnabled(true);

0