SideBarView
SideBarView copied to clipboard
Android 字母索引View,类似电话联系人分类
问题说明:手指触摸滑动使RecyclerView滚动,RecyclerView滚动触发onitemScrollUpdateText方法中的invalidate();,会导致两个invalidate();方法通知出发,反复刷新,使字母导航选中字母跳动。 解决:增加一个标记,在触摸字母栏的时候,RecyclerView滚动调用invalidate();方法 //标记是否是按住 1. private boolean isDown = false; 2. ```java @Override public boolean onTouchEvent(MotionEvent event) { switch (event.getAction()) { case MotionEvent.ACTION_DOWN: case MotionEvent.ACTION_MOVE: int index = (int) (event.getY() /...
首字母和上一个首字母是否相同,如果相同字母导航条就影藏,否则就显示 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); } /**...