android的ListView点击item使item展开的做法的实现代码
程序员文章站
2023-02-07 15:35:07
本文介绍了android的listview点击item使item展开的做法的实现代码,分享给大家,具体如下:
效果图:
原理是点击item的时候,重新measure...
本文介绍了android的listview点击item使item展开的做法的实现代码,分享给大家,具体如下:
效果图:
原理是点击item的时候,重新measure list的各个item的高度
list.setonitemclicklistener(new onitemclicklistener() { @override public void onitemclick(adapterview<?> parent, view view, int position, long id) { mydata data = mylist.get(position); if (oldpostion == position) { if (data.expand) { oldpostion = -1; } data.expand = !data.expand; }else{ oldpostion = position; data.expand = true; } int totalheight = 0; for(int i=0;i<myadapter.getcount();i++) { view viewitem = myadapter.getview(i, null, list); viewitem.measure(0, 0); totalheight += viewitem.getmeasuredheight(); } viewgroup.layoutparams params = list.getlayoutparams(); params.height = totalheight + (list.getdividerheight() * (list.getcount() - 1)); list.setlayoutparams(params); myadapter.notifydatasetchanged(); } });
adapter:
private class myadapter extends baseadapter{ @override public int getcount() { return mylist.size(); } @override public object getitem(int position) { return mylist.get(position); } @override public long getitemid(int position) { return position; } @override public view getview(int position, view convertview, viewgroup parent) { mytag tag = new mytag(); mydata data = mylist.get(position); if(convertview == null) { convertview = inflater.inflate(r.layout.expand_item_layout, null); tag.item1 = (textview)convertview.findviewbyid(r.id.item1); tag.item2 = (relativelayout)convertview.findviewbyid(r.id.item2); convertview.settag(tag); }else{ tag = (mytag)convertview.gettag(); } if(data.expand) { tag.item2.setvisibility(view.visible); }else{ tag.item2.setvisibility(view.gone); } tag.item1.settext(data.name); return convertview; } } private class mytag{ private textview item1; private relativelayout item2; } private class mydata{ boolean expand; string name; }
代码在https://github.com/nickgao1986/stepsport
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。
上一篇: 香港南丫岛一日游行程推荐
下一篇: 老年旅游者补充协议
推荐阅读
-
Android 中RecycleView实现item的点击事件
-
Android ListView的item背景色设置和item点击无响应的解决方法
-
Android中ListView的item点击没有反应的解决方法
-
Android 中通过ViewDragHelper实现ListView的Item的侧拉划出效果
-
android的ListView点击item使item展开的做法的实现代码
-
Android ListView的Item点击效果的定制
-
Android ListView的item背景色设置和item点击无响应的解决方法
-
Android ListView item中有按钮(Button)不能点击或者条目不能点击的问题
-
android的ListView点击item使item展开的做法的实现代码
-
Android ListView的item背景色设置和item点击无响应的解决方法