国产探花免费观看_亚洲丰满少妇自慰呻吟_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開發頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 富平县| 潼关县| 井冈山市| 黔西县| 六安市| 雷山县| 武邑县| 常德市| 峨山| 高青县| 连平县| 德昌县| 商南县| 巴青县| 阆中市| 从化市| 霞浦县| 富阳市| 顺昌县| 奉贤区| 赤水市| 东丰县| 潼南县| 林西县| 淄博市| 普定县| 阜新| 柘荣县| 昌邑市| 瑞丽市| 大荔县| 琼结县| 北碚区| 渝北区| 兴山县| 天长市| 蒲城县| 栾川县| 鄂尔多斯市| 五台县| 洪江市|