Android

Aquí está mi lista

<ListView android:layout_width="match_parent" android:layout_height="match_parent" android:id="@+id/ListView" android:fastScrollEnabled="true" android:divider="@null" style="@drawable/listviewfastscrollstyle" ></ListView> 

Este es el archivo de estilo listviewfastscrollstyle

 <style> <item name="android:fastScrollTrackDrawable">@drawable/listselector</item> <item name="android:fastScrollThumbDrawable">@drawable/listselector</item> </style> 

Este es el archivo listselector

 <selector xmlns:android="http://schemas.android.com/apk/res/android"> <item android:state_pressed="true" android:drawable="@drawable/channelarrows_down" /> <item android:drawable="@drawable/minimize" /> </selector> 

Pero aún así, la barra de desplazamiento rápido de vista de lista no se personaliza.

El estilo que ha creado no es correcto. Necesitas darle un nombre. No estoy seguro de qué le pasó a tu último mensaje sobre esto. Haz lo siguiente:

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

En su Manifiesto, establezca el siguiente estilo:

 <application android:icon="@drawable/icon" android:label="@string/app_name" android:theme="@style/CustomTheme"> 

Según lo solicitado, este es el ListView que estaba probando en:

 <ExpandableListView android:id="@android:id/list" android:layout_width="match_parent" android:layout_height="0dip" android:layout_weight="1" android:drawSelectorOnTop="false" android:fastScrollAlwaysVisible="true" android:fastScrollEnabled="true" android:indicatorLeft="8dip" android:indicatorRight="52dip" android:paddingRight="32dip" /> 

Para cambiar el fastScrollThumbDrawable , el fastScrollTrackDrawable , o el color de texto del fastscroll SectionIndexer tienes que usar un Context Theme. Las otras respuestas recomiendan sobreponer el tema de la aplicación a través de AndroidManifest para hacer esto. Eso funciona, pero si desea diferentes apariencias de la barra de desplazamiento por ListView no puede hacer eso. Además, la forma en que cambia el color de texto en SectionIndexer no se debe hacer en el tema de la aplicación porque puede tener otros efectos no deseados.

La mejor manera de diseñar un ListView para fastscrolling es crear un ListView personalizado que utilice ContextThemeWrapper .

Aquí hay un ejemplo:

 public class FastscrollThemedListView extends ListView { public FastscrollThemedListView(Context context, AttributeSet attrs) { super(new ContextThemeWrapper(context, R.style.FastScrollTheme), attrs); } } 

Eso es todo lo que necesitas. Su estilo se verá así:

 <style name="FastScrollTheme"> <item name="android:textColorPrimary">?android:textColorPrimaryInverse</item> <item name="android:fastScrollThumbDrawable">@drawable/fast_scrollbar_thumb</item> <item name="android:fastScrollTrackDrawable">@drawable/fast_scrollbar_track</item> </style> 

textColorPrimary es la forma en que engancha es la forma en que se engancha al color de fuente SectionIndexer si lo usa.

Tu ListView se vería así:

 <com.yourapp.view.FastscrollThemedListView android:layout_width="match_parent" android:layout_height="match_parent" android:id="@+id/ListView" android:fastScrollEnabled="true" android:divider="@null"/> 

Y en caso de que lo necesite esto es lo que su ThumbDrawable podría verse así:

Fast_scrollbar_thumb.xml

 <?xml version="1.0" encoding="utf-8"?> <layer-list xmlns:android="http://schemas.android.com/apk/res/android"> <item android:top="10dp" android:bottom="10dp"> <shape android:shape="rectangle"> <size android:height="45dp" android:width="5dp" /> <solid android:color="#DA414A" /> </shape> </item> </layer-list> 

AFAIK no hay por qué el estilo de la barra FastScroll antes de HoneyComb (API 11)

  • El clic de Listitem no funciona con las casillas de verificación Android
  • Android ListView con elementos que se pueden hacer clic en sus filas provoca problemas de desplazamiento continuo
  • ListView con elementos triangulares
  • TextViews en la parte superior e inferior, el espacio restante lleno de ListView
  • Android adjuntar múltiples adaptadores a un adaptador
  • ¿Cómo implemento una lista seccionada en Android?
  • Detener el controlador después de que se haya destruido el fragmento
  • ListView onItemClickListener no se llama
  • Desactivar el selector Android ListView
  • El adaptador personalizado de Android no funciona correctamente para la lista de chat
  • La altura de ListView llena toda la pantalla, aunque se define como wrap_content
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.