当前位置: 首页 > news >正文

ExpandableListView(二级ListView)的使用

2019独角兽企业重金招聘Python工程师标准>>> hot3.png

ExpandableListView首次加载全部展开,而不能点击收缩呢?

1、首次加载全部展开:

mDownloadListView.setAdapter(mDownloadAdapter);
		for (int i = 0; i < downloadGroup.size(); i++) {
			mDownloadListView.expandGroup(i);
		}

提醒:加载前别忘了判断adapter是否为空和有没有Group数据哦、

2、不能点击收缩:

mDownloadListView.setOnGroupClickListener(new OnGroupClickListener() {
			
			@Override
			public boolean onGroupClick(ExpandableListView parent, View v,
					int groupPosition, long id) {
				// TODO Auto-generated method stub
				return true;
			}
		});

OK了,把他的组点击事件屏蔽。呵呵、

3、ExpandableListView的长按事件
网上的资料很多,但是真正管用的没几个,最后找到一个确实可以用的,在这分享下:
(1)

//长按事件
		mExpandableListView.setOnCreateContextMenuListener(new OnCreateContextMenuListener() {
			
			@Override
			public void onCreateContextMenu(ContextMenu menu, View v,
					ContextMenuInfo menuInfo) {
				// TODO Auto-generated method stub
	      menu.setHeaderTitle("选择操作");
	      menu.add(0, DOWNLOAD_RETRY, 0, "重试");
	      menu.add(0, DOWNLOAD_DEL, 0, "删除");
	      menu.add(0, DOWNLOAD_START, 0, "启动");
			}
		});

(2)

/**
	 * 长按菜单响应函数
	 */
	@Override
	public boolean onContextItemSelected(MenuItem item) {
		// TODO Auto-generated method stub
		//关键代码
		ExpandableListContextMenuInfo info = (ExpandableListContextMenuInfo) item.getMenuInfo();
		int type = ExpandableListView.getPackedPositionType(info.packedPosition);
		if (type == ExpandableListView.PACKED_POSITION_TYPE_CHILD) {//上面的type设定这里类型的判定!这里是child判定!
			int groupPos = ExpandableListView.getPackedPositionGroup(info.packedPosition); //在child判定里面,获取该child所属group!
			int childPos = ExpandableListView.getPackedPositionChild(info.packedPosition); //在child判定里面,获取该child所属position!
			switch (item.getItemId()) {
			case DOWNLOAD_RETRY:
				makeTextShort("我是重试");
				break;
			case DOWNLOAD_DEL:
				makeTextShort("我是删除");
				break;
			case DOWNLOAD_START:
				makeTextShort("我是启动");
			default:
				break;
			}
          return true;
		}
		return false;
	}


4、目前上面浮动的未安装View没有实现,iOS的貌似是叫IphoneTreeView 。


转载于:https://my.oschina.net/u/2320057/blog/548445

相关文章:

  • EventFiringWebDriver网页事件监听(一)
  • 为您的Android,iOS等应用加入声波传输功能
  • virtualbox测试k8s要注意的情况
  • 操蛋的面试题(更新)
  • 深入剖析Java中的装箱和拆箱
  • 跨平台应用——Qt VS HTML5(上)
  • Python学习之路(2017.7.15)
  • MySQL中文全文检索
  • http和scoket通信的区别
  • 使用Anaconda搭建TensorFlow-GPU环境
  • 启动Oracle时提示“ORA-00600: internal error code, argume
  • TextInputLayout 和 TextInputEditText 的简单介绍以及使用
  • golang开发环境配置及Beego框架安装
  • 面向对象编程(十二)——final关键字
  • 【Unity笔记】获得鼠标点击屏幕的位置,并转成世界坐标
  • 【407天】跃迁之路——程序员高效学习方法论探索系列(实验阶段164-2018.03.19)...
  • 〔开发系列〕一次关于小程序开发的深度总结
  • axios 和 cookie 的那些事
  • CSS 提示工具(Tooltip)
  • Electron入门介绍
  • ES2017异步函数现已正式可用
  • JS基础之数据类型、对象、原型、原型链、继承
  • Mocha测试初探
  • Node + FFmpeg 实现Canvas动画导出视频
  • python3 使用 asyncio 代替线程
  • SegmentFault 社区上线小程序开发频道,助力小程序开发者生态
  • Vue 2.3、2.4 知识点小结
  • 开发了一款写作软件(OSX,Windows),附带Electron开发指南
  • 摩拜创始人胡玮炜也彻底离开了,共享单车行业还有未来吗? ...
  • ​VRRP 虚拟路由冗余协议(华为)
  • ​马来语翻译中文去哪比较好?
  • # 20155222 2016-2017-2 《Java程序设计》第5周学习总结
  • #Lua:Lua调用C++生成的DLL库
  • (1)Android开发优化---------UI优化
  • (3)选择元素——(17)练习(Exercises)
  • (4)logging(日志模块)
  • (8)Linux使用C语言读取proc/stat等cpu使用数据
  • (aiohttp-asyncio-FFmpeg-Docker-SRS)实现异步摄像头转码服务器
  • (三)模仿学习-Action数据的模仿
  • (深入.Net平台的软件系统分层开发).第一章.上机练习.20170424
  • (一)80c52学习之旅-起始篇
  • (一)WLAN定义和基本架构转
  • (转)JVM内存分配 -Xms128m -Xmx512m -XX:PermSize=128m -XX:MaxPermSize=512m
  • . Flume面试题
  • .NET Core实战项目之CMS 第一章 入门篇-开篇及总体规划
  • .NET Project Open Day(2011.11.13)
  • .net web项目 调用webService
  • .net 后台导出excel ,word
  • .Net(C#)自定义WinForm控件之小结篇
  • []T 还是 []*T, 这是一个问题
  • [2023年]-hadoop面试真题(一)
  • [C#]科学计数法(scientific notation)显示为正常数字
  • [C/C++]数据结构 深入挖掘环形链表问题
  • [codeforces]Levko and Permutation
  • [Dxperience.8.*]报表预览控件PrintControl设置