0

CursorAdapter で著しく遅い/ジッタリな AlphabetIndexer

リストビューはスムーズにスクロールしますが、alphabetindexer スクロールバーを押したまま上下にスクロールすると少し不安定になります

既に ViewHolder を使用しています

リストに以下を設定しました

mListView.setFastScrollEnabled(true);

次のようにアルファベットインデクサーをセットアップしました

public class FeedFragmentAdapter extends CursorAdapter implements SectionIndexer {

            AlphabetIndexer mAlphabetIndexer;

            public FeedFragmentAdapter(Context context, Cursor cursor, int flags) {
                super(context, cursor, flags);
                cursorInflater = (LayoutInflater) context.getSystemService(
                        Context.LAYOUT_INFLATER_SERVICE);
                this.context = context;
            }

    public void setIndexer(Cursor cursor){

        mAlphabetIndexer = new AlphabetIndexer(cursor,
                cursor.getColumnIndex("name_format"),
                "ABCDEFGHIJKLMNOPQRTSUVWXYZ");
        mAlphabetIndexer.setCursor(cursor);//Sets a new cursor as the data set and resets the cache of indices.

    }
            /**
             * Performs a binary search or cache lookup to find the first row that matches a given section's starting letter.
             */
            @Override
            public int getPositionForSection(int sectionIndex)
            {
                return mAlphabetIndexer.getPositionForSection(sectionIndex);
            }

            /**
             * Returns the section index for a given position in the list by querying the item and comparing it with all items
             * in the section array.
             */
            @Override
            public int getSectionForPosition(int position)
            {
                return mAlphabetIndexer.getSectionForPosition(position);
            }

            /**
             * Returns the section array constructed from the alphabet provided in the constructor.
             */
            @Override
            public Object[] getSections()
            {
                return mAlphabetIndexer.getSections();
            }

ListView でビューホルダー Android Laggy AlphabetIndexer を既に使用しているため、以下は適切ではありませんでした

4

0 に答える 0