转于:http://blog.csdn.net/jack_l1/article/details/14165291
------------------------------------------------------------------------------------
大家在做字母索引的时候常常会用到SectionIndexer这个类,里面有2个重要的方法
1. getSectionForPosition()通过该项的位置,获得所在分类组的索引号
2. getPositionForSection() 根据分类列的索引号获得该序列的首个位置
getSectionForPosition(0) 返回 0
getSectionForPosition(1) 返回 0
getSectionForPosition(2) 返回 0
getSectionForPosition(3) 返回 1
这下,明白这两个方法的区别了把
所以一般有如下代码,来确定是否滑动到了分类的首字母位置
- public void onScroll(AbsListView view, int firstVisibleItem, int visibleItemCount,
- int totalItemCount) {
- int section = indexer.getSectionForPosition(firstVisibleItem); //获得索引号
- int nextSecPosition = indexer.getPositionForSection(section + 1); //根据索引号获得下一个索引的初始位置
- if (firstVisibleItem != lastFirstVisibleItem) {
- MarginLayoutParams params = (MarginLayoutParams) titleLayout.getLayoutParams();
- params.topMargin = 0;
- titleLayout.setLayoutParams(params);
- title.setText(String.valueOf(alphabet.charAt(section)));
- }
- if (nextSecPosition == firstVisibleItem + 1) { //若是下一个索引号的位置与当前所见的项+1,则进行位移
- View childView = view.getChildAt(0);
- if (childView != null) {
- int titleHeight = titleLayout.getHeight();
- int bottom = childView.getBottom();
- MarginLayoutParams params = (MarginLayoutParams) titleLayout
- .getLayoutParams();
- if (bottom < titleHeight) {
- float pushedDistance = bottom - titleHeight;
- params.topMargin = (int) pushedDistance;
- titleLayout.setLayoutParams(params);
- } else {
- if (params.topMargin != 0) {
- params.topMargin = 0;
- titleLayout.setLayoutParams(params);
- }
- }
- }
- }
- lastFirstVisibleItem = firstVisibleItem;
- }
- });
相关推荐
java解惑java解惑java解惑java解惑java解惑java解惑
Java解惑Java解惑Java解惑Java解惑Java解惑Java解惑Java解惑Java解惑Java解惑Java解惑Java解惑Java解惑
教育教学中的困惑与解惑.docx
【中文】【 SQL 解惑(第2版) 】【pdf】【73.63MB】,提供下载地址,经典的资料,书籍,绝对经典!
也许有人看过java解惑,即通过讲述一个案例,解释一个java特性抑或一个容易遇到的小陷阱。SQL解惑与其相同,通过小小案例解析、阐述SQL各个特性,比刻板而唠叨的教科书更小巧、便捷,焕然一新。
SQL解惑(第2版)
Java解惑(中文).pdf 给大家介绍java中容易迷惑用错的实例
Java解惑.pdf Java解惑.pdf Java解惑.pdf Java解惑.pdf
大数据与人工智能 ------ 解惑 主讲:伍飞宇 时间:2017年8月27日 大数据与人工智能-解惑全文共27页,当前为第1页。 主 题 人工智能产品 02 机器学习 03 人工智能历史及发展 01 人工智能案例 04 面对人工智能 05 ...
与java相关的的学习,适合初学者,可以看看
C语言答疑解惑与典型题解,包含有C语言的难点、易错点,通俗易懂。
《Java解惑》《Java解惑》《Java解惑》《Java解惑》《Java解惑》《Java解惑》
。。。。。 Java解惑(中文) 是一本对 Java一些问题的解答 。。。。。。。。。。
JAVA解惑.pdf JAVA解惑.pdf JAVA解惑.pdf
解惑SQL
Java解惑中文版 Java解惑 java健壮程序
以前买过《Java语言解惑》这...CSDN中有这个资源,不过2M多,网上搜索率高的都是这个10M多的,不容易下载。我下载下来,上传到这里,不需要资源分,与大家共享。如果大家感兴趣,改日我贴上《Java语言解惑》得源码。
IT 学生解惑经典指导书 IT 学生解惑经典指导书 IT 学生解惑经典指导书 IT 学生解惑经典指导书 IT 学生解惑经典指导书 IT 学生解惑经典指导书 IT 学生解惑经典指导书 IT 学生解惑经典指导书
讲述如何在程序中避免程序缺陷和程序陷阱的,解惑的过程中,介绍了一些Java编程语言中许多不易被掌握的知识点,其阅读价值非常高,适合具有Java知识的学习者和有编程经验的Java程序员阅读。
Java解惑(中文)。大家快来下啊!!好的话多多支持啊,兴在这里先谢谢 大家了!!