Android自定义View——实现字母导航栏

 

1、自定义View实现字母导航栏

2、ListView实现联系人列表

3、字母导航栏滑动事件处理

4、字母导航栏与中间字母的联动

5、字母导航栏与ListView的联动

 

 

 

 

1、先看主布局,方便后面代码的说明

 

 
 

2、分析自定义字母导航栏

1.我们在使用的时候把宽设置为20dp,高设置为填充父控件,所以这里获取的宽度为20dp

2.通过循环,画出竖直的字母,每画一次得重新设置一下颜色,因为我们需要一个选中的字母颜色和默认不一样

 

 

 

 
 

3、ListView实现联系人列表

1.在主Activity中,定义一个数据数组,使用工具类获取数组的第一个字母,使用Collections根据第一个字母进行排序,由于工具类有点长,就不贴出来了。

2.创建一个ListView子布局,创建一个Adapter进行填充。

 

主布局

 

 
 

ListView子布局

 
 

Adapter

 
 

4、字母导航栏滑动事件处理、字母导航栏与中间字母的联动

1.在自定义View中重写dispatchTouchEvent处理滑动事件,最后返回true。

2.在主Activity传进来一个TextView,在我们滑动的时候设置Text,雅思词汇书松开的时候消失Text。设置Text的时候需要计算Text的位置,并且滑过多的话会出现数组越界的问题,所以我们在里面处理数组越界问题。

3.最后,提供一个接口,记录我们滑到的字母,为了后面可以和ListView联动。

 

 
 

5、字母导航栏和ListView的联动

1.我们已经通过接口传递过去了一个选择的字母,和在adapter写好了根据字母查询position的方法,这个时候只要主Activity对自定义View设置监听,判断即可。

 

 
 


源码下载:建议使用Import Module

转载于:https://www.cnblogs.com/wangfengxia/p/9617965.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值