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

来源:互联网 发布:建信养老飞月宝 知乎 编辑:程序博客网 时间:2024/03/28 18:09
在Listview的分块显示中,常常在自定义的adapter中会用到getPositionForSectiongetSectionForPosition这两个方法,这两个方法的目的在于使Listview中的每个item布局中的显示section块的TextView显示还是隐藏,比如在联系人主界面中的相同姓氏只显示每块的第一个item中的TextView,其余的都隐藏,这就是Listview的分块显示的原理,或者说其实现方式之一吧。
假设keyEt就是该TextView,该段代码写在自定义adapter的public View getView(int position, View convertView, ViewGroup parent) 方法中:

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              01               Achahtkh            02               Ahtjlarej           03               Bchatkd             14               Bjklhdsfoi          15               Bzhafdlsfk          16               Cj fadsfkj          2
getPositionForSection(1) returns 3
getPositionForSection(2) returns 6

2、
getSectionForPosition返回该position处的section的位置
1 0
原创粉丝点击