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

在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              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的位置
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值