国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 系統 > Android > 正文

android的ListView點擊item使item展開的做法的實現代碼

2019-10-21 21:34:00
字體:
來源:轉載
供稿:網友

本文介紹了androidListView點擊item使item展開的做法的實現代碼,分享給大家,具體如下:

效果圖:

android,ListView,點擊,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

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持VEVB武林網。


注:相關教程知識閱讀請移步到Android開發頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 徐汇区| 阿拉善左旗| 莱州市| 时尚| 平果县| 遵义市| 汉寿县| 遂溪县| 土默特右旗| 顺义区| 东台市| 台湾省| 杭锦旗| 常熟市| 郎溪县| 阳泉市| 外汇| 米林县| 余江县| 新营市| 昌都县| 江安县| 诸暨市| 佛冈县| 台湾省| 锡林浩特市| 福清市| 慈利县| 嘉禾县| 襄樊市| 成都市| 耿马| 屏东市| 丰都县| 双流县| 三河市| 沂水县| 黑水县| 秦安县| 斗六市| 呈贡县|