滚动AlphabetIndexer时,快速滚动缩略图消失

adn*_*eal 32 java android android-listview

我有一个ListViewfastScrollAlwaysVisiblefastScrollEnabled均设置为true.实现SectionIndexer到我AdapterAlphabetIndexer我之后,fast scroll thumb当我滚动时,我的意志消失,然后在我到达列表的顶部或底部时重新出现.对于为什么会这样,我很无能为力.我之前没有经历过.

以下所有内容都有效AlphabetIndexer.我的问题是为什么我的快速滚动拇指在我滚动时消失了,我怎么能阻止它消失?

无论是否fast scroll始终可见无所谓.每当fast scroll可见时,fast scroll thumb它就不存在,它就会消失,这就是我的问题.此外,当我删除像我打算AlphabetIndexerfast scroll thumb作品.一切都成功地运作Activity,但当我加载我ListViewFragment东西最终像我解释.

这是我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;
    }
}
Run Code Online (Sandbox Code Playgroud)

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);
    }
  }
}
Run Code Online (Sandbox Code Playgroud)

paw*_*eba 7

我有快速滚动的拇指图标类似的问题.我正在研究Android源代码并发现了一个引入此问题的提交和其他(ArrayIndexOutOfBoundsException).我甚至没有这个提交就建立了Android系统,然后就可以了.

我在六月份提交了该问题:https://code.google.com/p/android/issues/detail?id = 33293
当我正在阅读时知道我知道我可以更好地描述问题:)

这是提出问题的提交:https://github.com/android/platform_frameworks_base/commit/32c3a6929af9d63de3bf45a61be6e1a4bde136d3

不幸的是我没有找到任何解决方案,除了还原提交,我离开了它.
我希望有人能找到解决方法.


Bri*_*ley 2

您两者都拥有fastScrollEnabledfastScrollAlwaysVisible设置为吗true?a没有fastScrollAlwaysEnabled属性ListView,所以我想也许您只是fastScrollEnabled设置为 true 但fastScrollAlwaysVisible设置为其默认值,即false.