android的ListView点击item使item展开的做法的实现代码

发布时间:2019-08-08 发布网站:脚本宝典
脚本宝典收集整理的这篇文章主要介绍了android的ListView点击item使item展开的做法的实现代码脚本宝典觉得挺不错的,现在分享给大家,也给大家做个参考。

本文介绍了android的ListView点击ITem使item展开的做法的实现代码,分享给大家,具体如下:

效果图:

android的ListView点击item使item展开的做法的实现代码

原理是点击item的时候,重新measure list的各个item的高度

 list.setOnItemClickListener(new OnItemClickListener() {     @override   public void onItemClick(AdapterView<&#63;> 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教程
脚本网站
android studio

脚本宝典总结

以上是脚本宝典为你收集整理的android的ListView点击item使item展开的做法的实现代码全部内容,希望文章能够帮你解决android的ListView点击item使item展开的做法的实现代码所遇到的问题。

如果觉得脚本宝典网站内容还不错,欢迎将脚本宝典推荐好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。