先上效果界面
如图右侧竖排字母即为导航栏,通过自定义View实现。
实现导航思路:当用户点击这个控件时我们需要知道用户点击的哪个字母,并根据字母设置listview的从哪里开始显示,并在中心显示一个该字母的textview,给用户以提示。
所以这个控件的作用:在用户点击按钮时或滑动时,根据手指位置,实时获取字母(假设为M),将字母暴露出来,并提供事件的处理接口setOnLetterUpdateListener。在接口方法中,将listview设置到要显示的item项(listview.setSelection(N))方法。
程序源码地址:https://github.com/dronly/ImoocNews
QuickIndex源码如下
public class QuickIndexBar extends View {
private static final String[] LETTERS = new String[] { "A", "B", "C", "D",
"E", "F", "G", "H", "I", "J", "K", "L", "M", "N", "O", "P",