关于自定义indexbar使用paint画笔实时显示索引listview的header首字母和header对应的列表首个字符
来源:互联网 发布:广联达软件客服电话 编辑:程序博客网 时间:2024/06/07 22:55
开发联系人模块,遇到自定义view的问题,并且是使用paint画笔去绘制,关于字母索引列表的问题网上有很多基础的教程,但是遇到特殊定制的view和功能,还是需要开发人员自己去想办法解决。
描述一下:就是要在绘制好右侧字母索引的同时,弹框展示字母和字母对应的姓名的姓氏列表:如图
所以,需要我们绘制好弹框,字母部分是paint画笔绘制,下边姓氏列表为listview弹框:
public void draw(Canvas canvas) { if (!mDisplay || !mEnabled) { return; } for (int i = 0; i < mAllSections.length; i++) { float paddingLeft = (mWidth - mSectionPaint.measureText(mAllSections[i])) / 2; float x = mDisplayRect.left + paddingLeft; float y; int[] positions = new int[2]; mListView.getLocationInWindow(positions); if (mListView.getHeaderViewsCount() == 0 && positions[1] != 321 && positions[1] != 474) { y = mDisplayRect.top + (mSectionHeight + 7) * (i + 1); } else { y = mDisplayRect.top + mSectionHeight * (i + 1) + mSectionPaddingTop; } if (isDraw && mAllSections[i].equals(mDialog)) { mSectionPaint.setColor(mSectionSelectedTextColor); canvas.drawText(mAllSections[i], x, y, mSectionPaint); } else { mSectionPaint.setColor(mSectionDefaultTextColor); canvas.drawText(mAllSections[i], x, y, mSectionPaint); } } //根据当前是否需要,绘制关键字索引以及姓名首字列表 if (isDraw) { mNameIndexListHeaderText.setText(mDialog); } //根据需要,更新姓名首字列表 updateIndexListView(isDraw);}
设定好位置之后,再获取列表数据,填充数据,更新数据,即可,具体详情可根据业务来做。整体方案是这个思路。
0 0
- 关于自定义indexbar使用paint画笔实时显示索引listview的header首字母和header对应的列表首个字符
- listview的显示问题 header
- 画笔paint的使用
- 关于header()函数的使用
- 关于gridview添加header造成header显示不完全的解决方法
- Paint画笔的基本使用及自定义进度条
- 2012-7-18 ListView Header的使用
- 关于PtrFrameLayout自定义header的一些探索
- 自定义UITableView的Header
- 自定义tableview Header和Footer的样式
- 自定义UITableView的Header和Footer
- viewpager为listview的header
- Nginx的目录文件列表功能,和自定义header和footer
- 关于UICollectionViewController的header和foot视图
- 在ListView 的Column Header上显示任意图片
- ListView中只添加Header是不显示的
- div#header 和 div #header的区别
- div#header 和 div #header的区别
- CSDN博客积分计算规则
- Java函数的学习
- 网易编程—不要二 有时候就喜欢刚正面,暴力解
- java学习================多态实例
- 单例模式的改进
- 关于自定义indexbar使用paint画笔实时显示索引listview的header首字母和header对应的列表首个字符
- 170多个Ionic Framework学习资源(转载)
- oracle用户账号命令
- Hadoop2与Hadoop1差异
- golang slice分割和append copy还是引用
- The value for the useBean class attribute XXX is invalid
- 根据网络状态获取Ip地址
- js监听input输入框,让用户在使用拼音输入法的状态下无法输入除数字外的任何字符
- 电脑软件