小编给大家分享一下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;iadapter:
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使item展开”这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注创新互联行业资讯频道!
分享标题:android中如何实现ListView点击item使item展开-创新互联
浏览路径:http://cdysf.com/article/hhseo.html