本文介绍了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展开的做法的实现代码相关推荐

  1. android 张口逐帧动画,Android中实现一个简单的逐帧动画(附代码下载)

    场景 Android中的逐帧动画,就是由连续的一张张照片组成的动画. 效果 注: 实现 首先准备一组不同表情的照片,放在res/drawable下,然后在此目录下新建动画资源文件fairy.xml 这 ...

  2. android从一点展开动画,Android自定义View——从零开始实现可展开收起的水平菜单栏...

    大家要是看到有错误的地方或者有啥好的建议,欢迎留言评论 前言:最近项目里要实现一个 可展开收起的水平菜单栏控件,刚接到需求时想着用自定义View自己来绘制,发现要实现 圆角.阴影.菜单滑动等效果非常复 ...

  3. android加载转圈动画,android 围绕中心旋转动画

    本文主要介绍Android中如何使用rotate实现图片不停旋转的效果.Android 平台提供了两类动画,一类是 Tween 动画,即通过对场景里的对象不断做图像变换(平移.缩放.旋转)产生动画效果 ...

  4. android 向左滑动动画,Android中的滑动动画

    这是问题所在. 我想从左到右滑动(在下面的代码中从右到左--) 所以请帮我动画(XML动画与此相反)-- (当前任务在按钮单击时正确运行-) 这是源- public class MainActivit ...

  5. android 图片预览动画,Android实现仿Windows7图片预览窗格效果

    本实例将显示类似于windows7提供的图片预览窗格效果,单击任意一张图片,可以在右侧显示该图片的预览效果. 效果如图所示: 具体实现方法: res/layout/main.xml: android: ...

  6. android imageview图片旋转动画,Android 安卓动画 属性动画 - 旋转动画

    引入 属性动画的出现,弥补了补间动画的不足之处,补间动画,只是改变了表面上的东西,但是其中属性并未改变,而属性动画相反,改变了表面上的东西,并且也更改了其属性. 类:ObjectAnimator 用于 ...

  7. Android仿新浪微博弹出界面动画,Android仿新浪微博启动界面或登陆界面(1)

    本文为大家分享了Android模仿新浪微博启动界面&登陆界面的具体实现代码,供大家参考,具体内容如下 启动界面 主要有两个功能: 1.加载启动动画 2.判断网络,有者直接进入登陆界面,否则去设 ...

  8. Android平移补间动画,Android 补间动画之平移动画TranslateAnimation

    Android动画系列 博客导航: 1.介绍: Android补间动画之平移动画,在实际的开发过程中,其实有好多地方需要用到平移动画,这是对于平移动画的简单介绍. 2.属性 duration 时间 f ...

  9. android 向左滑动动画,Android Activity左边滑出,右边滑入的动画切换

    Activity的切换动画实际上是Android的View Animation(视图动画)中的Tween Animation效果,Tween Animation分为4种动画效果,分别是:alpha ( ...

最新文章

  1. UOJ 405(IOI2018 D1T1)
  2. OpenCV坐标体系的初步认识
  3. python增量赋值是什么意思_关于python中的增量赋值的理解
  4. css3 animation动画事件
  5. 【SpringCloud】Nacos 自定义登录用户名和密码
  6. nopcommerce 商城案例
  7. 【Nginx】Nginx 工作原理
  8. 十八个经典问答,讲透了RS485接口!-小白收藏
  9. 东南亚外卖平台分析报告
  10. pmp项目管理的优先级解决方法
  11. Roles of financial reporting standard-setting bodies and regulatory authorities
  12. html英文日期js,JS网页上显示中英文版日期时间(根据电脑上的时间)
  13. 淘宝用户日志数据集的用户行为分析与用户分群
  14. NBMA网络中的OSPF实验(MGRE)
  15. tar.gz和tar.xz的解压方法及解压命令说明
  16. 三、项目进度管理(输入/工具与技术/输出)
  17. 笔记本电脑触控板操作小结
  18. linux bash 漏洞修复方法
  19. 互联网晚报 | 1月23日 星期日 | 抖音推出PC版客户端;春节档预售票房破亿;岚图FREE第10000辆下线...
  20. 向量点积,叉积,向量点乘和余弦的关系推导

热门文章

  1. 壕!腾讯85亿买了个岛:200万平方米巨无霸“新鹅厂”来了
  2. 最便宜5G手机登场 网友:看到名字犹豫了
  3. OPPO Find X继任者来了!Find Z曝光:搭载骁龙855
  4. java.lang.IllegalStateException: You need to use a Theme.AppCompat theme (or descendant) with this a
  5. 鼓励自己成为一名合格程序设计师
  6. 晨哥真有料丨这样的你很掉价!
  7. go调用ffmpeg
  8. go https client
  9. 第k大的数python代码_Python实现查找数组中任意第k大的数字算法示例
  10. Linux系统C/C++通用错误码实现模板