4

SectionIndexer を実装するカスタム アダプターで ListView を実行します。マニフェスト ファイルに minSdkVersion = 8 のみを入力すると、すべて正常に動作します。しかし、マニフェストに targetSdkVersion = 11 (またはそれ以上) を追加すると、リストをスクロールすると高速スクロールバーが画面からロールアウトし始めますが、リストの終わりはありません。

もう 1 点: マニフェストに targetSdkVersion = 11 を追加し、SectionIndexer を実装せずにリスト アダプターを実行すると、スクロールバーも正常に動作します。

しかし、targetSdkVersion = 11 以上が必要で、SectionIndexer の実装が必要です。

何か案は?

4

1 に答える 1

15

私の推測では、 getSectionForPosition(int position) メソッドを正しく実装していないためです。

これは私がすることです:

    @Override
    public int getSectionForPosition(int position) {
        for(int i = sections.length - 1; i >= 0; i--) {
            if(position > alphaIndexer.get(sections[i]))
                return i;
        }
        return 0;
    }
于 2012-09-14T09:17:59.130 に答える