SectionIndexer中的getSectionForPosition()与getPositionForSection()解惑
来源:互联网 发布:有哪些大数据查询的app 编辑:程序博客网 时间:2024/04/27 16:41
转自http://blog.csdn.net/jack_l1/article/details/14165291
大家在做字母索引的时候常常会用到SectionIndexer这个类,里面有2个重要的方法
getSectionForPosition()通过该项的位置,获得所在分类组的索引号
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; } });
0 0
- SectionIndexer中的getSectionForPosition()与getPositionForSection()解惑
- SectionIndexer中的getSectionForPosition()与getPositionForSection()解惑
- SectionIndexer中的getSectionForPosition()与getPositionForSection()解惑
- SectionIndexer中的getSectionForPosition()与getPositionForSection()解惑
- SectionIndexer中的getSectionForPosition()与getPositionForSection()解惑
- SectionIndexer中的getSectionForPosition()与getPositionForSection()解惑
- SectionIndexer接口中的getPositionForSection与getSectionForPosition
- getPositionForSection与getSectionForPosition
- getSectionForPosition()与getPositionForSection()
- getPositionForSection与getSectionForPosition的用法(Listview分块显示)
- sectionIndexer
- SectionIndexer
- SectionIndexer解析与使用 联系人侧边栏
- javascript文件在IE缓存中的迷惑与解惑实验
- SectionIndexer详解
- Shell中的IFS解惑
- Shell中的IFS解惑
- Shell中的IFS解惑
- 判断第几天是母亲节
- 深度学习进入芯片领域,揭秘寒武纪神经网络处理器
- LeetCode 010 Regular Expression Matching
- HDU-ACM1005
- Introduction to C++ Programming in UE4——UE4官方文档翻译与理解(一)
- SectionIndexer中的getSectionForPosition()与getPositionForSection()解惑
- volatile关键字解析(jdk1.5之后)
- http协议学习笔记(三)
- Codeforces-148D Bag of mice (概率DP)
- Light oj 1094 - Farthest Nodes in a Tree【树的直径】
- HDU-ACM1008
- Kali linux搭建钓鱼wifi
- 白板编程浅谈——Why, What, How
- Spring Data 学习(1)—— HelloWorld