失眠网,内容丰富有趣,生活中的好帮手!
失眠网 > android listview item 展开动画 android的ListView点击item使item展开的做法的实现代码

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

时间:2023-02-03 21:18:53

相关推荐

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

本文介绍了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;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;

}

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。

如果觉得《android listview item 展开动画 android的ListView点击item使item展开的做法的实现代码》对你有帮助,请点赞、收藏,并留下你的观点哦!

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。