У меня есть ListView
с fastScrollAlwaysVisible
и fastScrollEnabled
оба установлены в true
. После внедрения SectionIndexer
в мои Adapter
и AlphabetIndexer
мой fast scroll thumb
исчезнет, пока я прокручу, а затем снова появится, как только я доберусь до верхней или нижней части списка. Я довольно не знаю, почему это происходит. Раньше я этого не испытывал.Быстрая прокрутка большого пальца исчезает при прокрутке AlphabetIndexer
Все нижеследующее работает до AlphabetIndexer
. Мой вопрос: почему мой быстрый палец прокрутки исчезает во время прокрутки и как я могу остановить его от исчезновения?
Независимо от того, является ли fast scroll
всегда видимым не имеет значения. Всякий раз, когда видна fast scroll
, fast scroll thumb
не существует, это просто исчезло, и это моя проблема. Кроме того, когда я удаляю AlphabetIndexer
, работает fast scroll thumb
, как я его намерен. Все работает успешно в Activity
, но когда я загружаю ListView
в Fragment
, все заканчивается, как я объясняю.
Это мой Adapter
для моего 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
помогает разобраться в музыке правильно:
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);
}
}
}
Я делаю что-то похож ЗДЕСЬ http://stackoverflow.com/questions/10224233/alphabetindexer-with-custom-adapter-managed-by-loadermanager – toobsco42
я взял на вашем посту и не видел ничего плохого. Мой 'SectionIndexer' работает и не отображается при прокрутке, и кажется, что у вас есть противоположная проблема, странная. Я начинаю думать, что «Фрагменты» являются виновниками, но я не уверен, как сейчас. Я думаю, что это потому, что мой 'SectionIndexer' работает в' ListActivity'. – adneal
Я попытаюсь посмотреть, смогу ли я воссоздать ваши проблемы. –