android的ListView点击item使item展开的做法的实现代码
16lz
2021-01-26
本文介绍了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;iadapter:
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 Toast大全(五种)
- android源代码下载、编译、刷机、编译模块push到手机
- 使用proguard进行代码混淆时的问题
- HelloAndroid例子
- CSS 3模仿android 中的toast效果
- Android学习之Animation(一)
- android activity向fragment通信,获取fragment的三种方法
- Android(安卓)MediaScanner.cpp 源代码解析
- Android之对话框Dialog(二)
随机推荐