2011-08-14 13 views
5

アルファベット順ではない国のリストビューがあり、fastscrollを使用して開始しました。 fastscrollでスクロールするときにcountry-flagを表示したいと思いますが、APIにはプライベートのFastScrollクラスがあるので、オーバーライドできません。fastScrollEnabledを使用しているときにカスタムサムを表示する方法

他の誰かがカスタムのファスト・スクロール・ビューを実装していますか?

参考文献:あなたのListView XML定義で http://developer.android.com/reference/android/widget/AbsListView.html#attr_android:fastScrollEnabled

答えて

10

android:fastScrollEnabled="true" 

またはコードで

listView.setFastScrollEnabled(true); 

を追加し、次のように解像度/描画可能フォルダ内のファイルfastscroll_thumb.xmlを作成します。

<?xml version="1.0" encoding="utf-8"?> 
<selector xmlns:android="http://schemas.android.com/apk/res/android"> 
    <item android:state_pressed="true" android:drawable="@drawable/fastscroll_pressed" /> 
    <item android:drawable="@drawable/fastscroll" /> 
</selector> 
AndroidManifest.xmlで

、アプリケーションのカスタムテーマを設定します。

<application 
    android:theme="@style/ApplicationTheme" 
    ...> 

をRESフォルダ内の値のフォルダを作成します。次のように解像度/値のthemes.xmlファイルを作成します。

<resources> 
    <style name="ApplicationTheme"> 
     <item name="android:fastScrollThumbDrawable">@drawable/fastscroll_thumb</item> 
    </style> 
</resources> 

を最後にfastscroll.pngとfastscroll_pressed.pngが

(オプション) あなたはまた、常に高速なスクロールを設定することができ、あなたの描画可能なフォルダに存在することを確認してください目に見えるあなたが好きなら、デバッグしている間

listView.setFastScrollAlwaysVisible(true); 

またはXMLで

android:fastScrollAlwaysVisible="true" 
+1

APIレベル11以降でのみ表示される 'listView.setFastScrollAlwaysVisible'に注意してください –

関連する問題