Tengo un ListView
con fastScrollAlwaysVisible
y ambos configurados en true
. Después de implementar SectionIndexer
en mi Adapter
y AlphabetIndexer
, mi fast scroll thumb
desaparecerá mientras me desplazo, luego reapareceré una vez que llegue a la parte superior o inferior de la lista. No tengo ni idea de por qué sucede esto. No lo he experimentado antes.El pulgar de desplazamiento rápido desaparece al desplazarse por AlphabetIndexer
Todo lo que sigue funciona tan lejos como AlphabetIndexer
. Mi pregunta es: ¿por qué mi pulgar de desplazamiento rápido desaparece mientras me desplazo y cómo puedo evitar que desaparezca?
Si fast scroll
es siempre visible no importa. Siempre que el fast scroll
esté visible, el fast scroll thumb
no está allí, simplemente se ha ido y ese es mi problema. Además, cuando elimino el AlphabetIndexer
el fast scroll thumb
funciona como lo pretendo. Todo funciona con éxito en un Activity
, pero cuando cargo mi ListView
en un Fragment
las cosas terminan como explico.
Ésta es mi Adapter
para mi ListView
:
private class AlbumsAdapter extends SimpleCursorAdapter implements
SectionIndexer {
private AlphabetIndexer mIndexer;
// I have to override this because I'm using a `LoaderManager`
@Override
public Cursor swapCursor(Cursor cursor) {
if (cursor != null) {
mIndexer = new MusicAlphabetIndexer(cursor, mAlbumIdx,
getResources().getString(R.string.fast_scroll_alphabet));
}
return super.swapCursor(cursor);
}
@Override
public Object[] getSections() {
return mIndexer.getSections();
}
@Override
public int getPositionForSection(int section) {
return mIndexer.getPositionForSection(section);
}
@Override
public int getSectionForPosition(int position) {
return 0;
}
}
MusicAlphabetIndexer
ayuda a clasificar a través de la música correctamente:
class MusicAlphabetIndexer extends AlphabetIndexer {
public MusicAlphabetIndexer(Cursor cursor, int sortedColumnIndex,
CharSequence alphabet) {
super(cursor, sortedColumnIndex, alphabet);
}
@Override
protected int compare(String word, String letter) {
String wordKey = MediaStore.Audio.keyFor(word);
String letterKey = MediaStore.Audio.keyFor(letter);
if (wordKey.startsWith(letter)) {
return 0;
} else {
return wordKey.compareTo(letterKey);
}
}
}
que estoy haciendo algo similar AQUÍ http://stackoverflow.com/questions/10224233/alphabetindexer-with-custom-adapter-managed-by-loadermanager – toobsco42
Tomé en su publicación y no vio nada malo. Mi 'SectionIndexer' funciona y no se muestra mientras te desplazas y parece que estás teniendo el problema opuesto, raro. Estoy empezando a pensar que 'Fragments' es el culpable, pero no estoy seguro de cómo hacerlo ahora. Creo que son porque mi 'SectionIndexer' funciona en' ListActivity'. – adneal
Trataré de ver si puedo recrear sus problemas. –