您的位置:首页 > 编程语言 > PHP开发

getPositionForSection与getSectionForPosition的用法(Listview分块显示)

2015-12-01 14:26 609 查看
在Listview的分块显示中,常常在自定义的adapter中会用到
getPositionForSection
和[code]getSectionForPosition
这两个方法,这两个方法的目的在于使Listview中的每个item布局中的显示section块的TextView显示还是隐藏,比如在联系人主界面中的相同姓氏只显示每块的第一个item中的TextView,其余的都隐藏,这就是Listview的分块显示的原理,或者说其实现方式之一吧。

假设keyEt就是该TextView,该段代码写在自定义adapter的public View getView(int position, View convertView, ViewGroup parent) 方法中:

[/code]
int section=getSectionForPosition(position);
int pos=getPositionForSection(section);
if(pos==position){
keyEt.setVisibility(View.VISIBLE);
}else{
keyEt.setVisibility(View.GONE);
}
这两个方法的原理如下:

1、

getPositionForSection返回每个section的第一个元素位置,如

Position        Data               getSectionForPosition(position)

_________       __________         ______________________________

0               Abhfdf              0

1               Achahtkh            0

2               Ahtjlarej           0

3               Bchatkd             1

4               Bjklhdsfoi          1

5               Bzhafdlsfk          1

6               Cj fadsfkj          2

getPositionForSection(1)
returns 3

getPositionForSection(2)
returns 6

2、

getSectionForPosition返回该position处的section的位置
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: