2011-08-14 16 views
5

Tengo una vista de lista de países en orden no alfabético y comencé a usar fastscroll. Me gustaría mostrar el indicador de país cuando se desplaza con fastscroll, pero parece que las API tienen la clase FastScroll como privada, así que no puedo anularla.Cómo mostrar el pulgar personalizado al usar fastScrollEnabled

¿Alguien más ha implementado una vista fastscroll personalizada?

Referencias: http://developer.android.com/reference/android/widget/AbsListView.html#attr_android:fastScrollEnabled

Respuesta

10

En su definición XML ListView, agregue

android:fastScrollEnabled="true" 

o en código

listView.setFastScrollEnabled(true); 

Crear fastscroll_thumb.xml archivo en la carpeta res/estirable de la siguiente manera:

<?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> 

En AndroidManifest.xml, establezca un tema personalizado para su aplicación:

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

Crear una carpeta de valores en la carpeta res. Crear themes.xml archivos en res/valores de la siguiente manera:

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

Por último, asegúrese de que fastscroll.png y fastscroll_pressed.png existen en la carpeta de dibujable

(opcional) También puede configurar desplazamiento rápido siempre visibles mientras depura si te gusta

listView.setFastScrollAlwaysVisible(true); 

o en XML

android:fastScrollAlwaysVisible="true" 
+1

tenga cuidado con 'listView.setFastScrollAlwaysVisible' ya que viene solo desde el nivel API 11 –

Cuestiones relacionadas