SideBarView
SideBarView copied to clipboard
SortAdapter 优化
首字母和上一个首字母是否相同,如果相同字母导航条就影藏,否则就显示 int section = getSectionForPosition(viewHolder.getLayoutPosition()); if (viewHolder.getLayoutPosition() == getPositionForSection(section)) { (viewHolder.getView(R.id.tv_key)).setVisibility(View.VISIBLE); } else { (viewHolder.getView(R.id.tv_key)).setVisibility(View.GONE); }
/** * 根据ListView的当前位置获取分类的首字母的Char ascii值 */ public int getSectionForPosition(int position) { return getData().get(position).getWord().charAt(0); }
/**
* 获取第一次出现该首字母的List所在的位置
*/
public int getPositionForSection(int section) {
for (int i = 0; i < getData().size(); i++) {
String sortStr = getData().get(i).getWord();
char firstChar = sortStr.toUpperCase().charAt(0);
if (firstChar == section) {
return i;
}
}
return -1;
}