android 隐藏展开功能,ListView点击Item展开隐藏项(单项展开、多项展开、复杂布局时的展开处理)...

说明

在我们开发项目的过程中,有时候会遇到这样的需求,就是首先显示一个列表,可以用ListView或者RecycleView实现,每个item都有一个向下箭头,然后点击列表的每个item条目,下边就又会出现一些内容,此时箭头方向朝上,再次点击item条目,下边新出现的内容隐藏,箭头又会回到初始时向下的方向,效果如下:

1abab9a17ce1

礼包.jpg

ok,效果就是这样的,这里有3种应用场景:

第一种是listview的单个item展开;

第二种是listview的所有item展开;

第三种是表格布局item展开;

那么接下来我们就逐个分析这几个效果实现的思路,然后再去带大家去实现这个效果,我们首先来看我们第一种情况 —— 单个item展开 。

思路分析

2.1 单个item展开思路分析及代码实现

2.1.1 首先可以使用ListView先来实现下这个列表;

2.1.2 然后在自己定义的Adapter的最外层定义一个private int currentItem = -1,用于记录点击的item的position,这个是控制item展开的核心;

2.1.3 然后在getView()方法中给你设置点击事件的这个控件设置tag标记值;

2.1.4 然后根据currentItem 记录点击位置来设置对应item的可见性;

2.1.5 然后可以给整个显示的区域一个点击事件或者只是给箭头一个点击事件,比如我这边就给item的显示的部分整体设置点击事件,然后取出tag,判断如果tag ==currentItem,就设置一个设置一个无效值,否则就让tag=currentItem ;

2.1.6 最后通知adapter数据改变了需要刷新数据;

自定义的Adapter中具体实现如下:

/**

* 点击item展开隐藏部分,再次点击收起

* 只可展开一条记录

*

* @author JackChen

* @date 2016.01.31

*/

public class OneExpandAdapter extends BaseAdapter {

private Context context;

private ArrayList> list;

private int currentItem = -1; //用于记录点击的 Item 的 position,是控制 item 展开的核心

public OneExpandAdapter(Context context,

ArrayList> list) {

super();

this.context = context;

this.list = list;

}

@Override

public int getCount() {

return list.size();

}

@Override

public Object getItem(int position) {

return list.get(position);

}

@Ove

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值