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 を既に使用しているため、以下は適切ではありませんでした