android的ListView點擊item使item展開的做法的實現(xiàn)代碼
更新時間:2018年12月11日 10:23:53 作者:nickcau
這篇文章主要介紹了android的ListView點擊item使item展開的做法的實現(xiàn)代碼,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
本文介紹了android的ListView點擊item使item展開的做法的實現(xiàn)代碼,分享給大家,具體如下:
效果圖:
原理是點擊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
以上就是本文的全部內(nèi)容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。
您可能感興趣的文章:
- Android編程實現(xiàn)Listview點擊展開和隱藏的方法
- Android編程實現(xiàn)ListView中item部分區(qū)域添加點擊事件功能
- Android開發(fā)實現(xiàn)ListView點擊item改變顏色功能示例
- Android 實現(xiàn)ListView的點擊變色的實例
- Android ListView的Item點擊效果的定制
- Android實現(xiàn)為ListView同時設置點擊時的背景和點擊松手之后的背景
- Android ListView的item背景色設置和item點擊無響應的解決方法
- Android開發(fā)之ListView實現(xiàn)Item局部刷新
- android ListView內(nèi)數(shù)據(jù)的動態(tài)添加與刪除實例代碼
- android ListView和GridView拖拽移位實現(xiàn)代碼
- Android開發(fā)實現(xiàn)ListView點擊展開收起效果示例
相關文章
學習使用Material Design控件(三)使用CardView實現(xiàn)卡片效果
這篇文章主要為大家介紹了學習使用Material Design控件的詳細教程,如何使用CardView實現(xiàn)卡片效果,具有一定的參考價值,感興趣的小伙伴們可以參考一下2017-07-07Android GridView 滑動條設置一直顯示狀態(tài)(推薦)
這篇文章主要介紹了Android GridView 滑動條設置一直顯示狀態(tài)的相關資料,非常不錯,具有參考借鑒價值,需要的朋友可以參考下2016-12-12