Ползунок быстрой прокрутки исчезает при прокрутке AlphabetIndexer

У меня есть ListViewс fastScrollAlwaysVisibleи fastScrollEnabled. установите значение true. После внедрения SectionIndexerв мой Adapterи AlphabetIndexerмой бегунок быстрой прокруткиисчезнет во время прокрутки, а затем снова появится, как только я достигну вверху или внизу списка. Я совершенно не понимаю, почему это происходит. Я не испытывал этого раньше.

Все нижеизложенное работает в том, что касается AlphabetIndexer. Мой вопрос: почему мой большой палец быстрой прокрутки исчезает во время прокрутки и как я могу остановить его исчезновение?

Является ли быстрая прокруткавидимой всегдаили нет, не имеет значения. Всякий раз, когда отображается быстрая прокрутка, бегунок быстрой прокруткиотсутствует, его просто нет, и это моя проблема. Кроме того, когда я удаляю AlphabetIndexer, бегунок быстрой прокруткиработает так, как я и предполагал. Все успешно работает в Activity, но когда я загружаю свой ListViewв Fragment, все заканчивается так, как я объясняю.

Это мой Адаптердля моего 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);
    }
  }
}
32
задан adneal 18 April 2012 в 08:18
поделиться