tipo teclado studio programacion poner móviles letras letra las desarrollo cómo curso cursiva como celular cambiar aplicaciones android listview alphabetical

teclado - ¿Cómo crear una barra de desplazamiento alfabética que muestre todas las letras en Android?



cómo cambiar la letra (2)

Esta es una función de iPhone, Android utiliza desplazamiento rápido. Recomiendo que utilice la plataforma alternativa en lugar de intentar imponer una funcionalidad común.

Si debe, tendrá que implementar esto usted mismo. Ponga su vista de lista en un RelativeLayout y coloque AZ TextViews en un LinearLayout vertical que se establece en layout_alignParentRight="true" . Establezca la etiqueta de TextView en AZ apropiadamente y establezca onClick="quickScroll" en todos ellos.

Implementar en tu actividad:

public void quickScroll(View v) { String alphabet = (String)v.getTag(); //find the index of the separator row view list.setSelectionFromTop(index, 0); }

Esto se desplazará a la letra seleccionada enHaga clic en, pero creo que puede desplazar su dedo sobre el alfabeto en el iPhone y actualizará la lista? Tendrá que implementar un onTouchListener en lugar de onClickListener para eso.

Mi propósito es obtener algo como eso:

Pero los únicos ejemplos que puedo encontrar son listas como esa:
android - listview fastscroll con alfabeto como en la actividad de contactos de iPhone

Obviamente, no quiero una lista como la de los contactos que muestra las letras cuando se desplaza rápidamente. Yo sé cómo hacer esto.

Cualquier apuntador sería bienvenido. (Intenté this pero no tuve éxito)

A continuación, la solución completa sugerida por FunkTheMonk (muchas gracias):

Defina la vista de lista como de costumbre. Defina un RelativeLayout que contenga el ListView y, a la derecha, un LinearLayout con todas las letras. Para una mejor solución, la lista de letras se puede generar dinámicamente para mostrar solo las letras en la lista. Luego, en el método onClick, agregue el comportamiento para desplazarse por la lista:

xml

<?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent"> <ListView android:id="@android:id/list" android:layout_width="match_parent" android:layout_height="match_parent" android:layout_marginRight="28dip" /> <LinearLayout android:orientation="vertical" android:layout_width="28dip" android:layout_height="wrap_content" android:layout_alignParentRight="true" android:background="@android:color/transparent" > <TextView android:id="@+id/A" android:text="A" android:tag="A" style="@style/alphabetTextView"/> <TextView android:id="@+id/B" android:text="B" android:tag="B" style="@style/alphabetTextView" /> <TextView android:id="@+id/C" android:text="C" android:tag="C" style="@style/alphabetTextView" /> <TextView android:id="@+id/D" android:text="D" android:tag="D" style="@style/alphabetTextView" /> <TextView android:id="@+id/E" android:text="E" android:tag="E" style="@style/alphabetTextView" /> <TextView android:id="@+id/F" android:text="F" android:tag="F" style="@style/alphabetTextView" /> <TextView android:id="@+id/G" android:text="G" android:tag="G" style="@style/alphabetTextView" /> <TextView android:id="@+id/H" android:text="H" android:tag="H" style="@style/alphabetTextView" /> <TextView android:id="@+id/I" android:text="I" android:tag="I" style="@style/alphabetTextView" /> <TextView android:id="@+id/J" android:text="J" android:tag="J" style="@style/alphabetTextView" /> <TextView android:id="@+id/K" android:text="K" android:tag="K" style="@style/alphabetTextView" /> <TextView android:id="@+id/L" android:text="L" android:tag="L" style="@style/alphabetTextView" /> <TextView android:id="@+id/M" android:text="M" android:tag="M" style="@style/alphabetTextView" /> <TextView android:id="@+id/N" android:text="N" android:tag="N" style="@style/alphabetTextView" /> <TextView android:id="@+id/O" android:text="O" android:tag="O" style="@style/alphabetTextView" /> <TextView android:id="@+id/P" android:text="P" android:tag="P" style="@style/alphabetTextView" /> <TextView android:id="@+id/Q" android:text="Q" android:tag="Q" style="@style/alphabetTextView" /> <TextView android:id="@+id/R" android:text="R" android:tag="R" style="@style/alphabetTextView" /> <TextView android:id="@+id/S" android:text="S" android:tag="S" style="@style/alphabetTextView" /> <TextView android:id="@+id/T" android:text="T" android:tag="T" style="@style/alphabetTextView" /> <TextView android:id="@+id/U" android:text="U" android:tag="U" style="@style/alphabetTextView" /> <TextView android:id="@+id/V" android:text="V" android:tag="V" style="@style/alphabetTextView" /> <TextView android:id="@+id/W" android:text="W" android:tag="W" style="@style/alphabetTextView" /> <TextView android:id="@+id/X" android:text="X" android:tag="X" style="@style/alphabetTextView" /> <TextView android:id="@+id/Y" android:text="Y" android:tag="Y" style="@style/alphabetTextView" /> <TextView android:id="@+id/Z" android:text="Z" android:tag="Z" style="@style/alphabetTextView" /> </LinearLayout> </RelativeLayout>

Java

@Override public void onClick(View v) { String firstLetter = (String) v.getTag(); int index = 0; if (stringList != null) { for (String string : stringList) { if (string.startsWith(firstLetter)) { index = stringList.indexOf(string); break; } } } lv.setSelectionFromTop(index, 0); }


Puede intentar usar IndexScroller que solo es visible al tacto y auto invisible cuando no hay contacto. Aquí está la captura de pantalla