最近在做Android市场的应用、看到好多市场类的QQ应用宝做的算是最完美的了、
在项目中要实现它的下载管理的实现,而界面如下:


反编译得到使用的是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 。

来自:http://www.xuebuyuan.com/875180.html

最新文章

  1. [LeetCode] Unique Paths II 不同的路径之二
  2. 为SharePoint Server 2013 建立搜索爬行
  3. [WCF编程]8.服务实例的生命周期
  4. android 界面设计基本知识Ⅱ
  5. react学习笔记1
  6. mysql 插入/更新数据
  7. [转]expect的安装
  8. 【转】MSMQ消息队列安装
  9. BootStrap--Tables(表格) MVC中不刷新做增,删,改(C#)
  10. aliCloud基于RAMService实现跨账户资源访问
  11. MySql中 where IN 字符串
  12. pwnable.tw start&amp;orw
  13. 【上载虚拟机】XX是一个Workstations 12.X虚拟机,不受XX支持。请选择其他主机或将虚拟机的硬件版本更改为以下选项之一。
  14. windows程序设计 加载位图图片
  15. Canvas教程
  16. [Office Web Apps]实现在线office文档预览
  17. WPF转换器:时间转换为字符串
  18. 拓扑排序获取所有可能序列JAVA实现
  19. JavaScript中烧脑的&amp;&amp;和||
  20. 20135234mqy-——信息安全系统设计基础第三周学习总结

热门文章

  1. IO之转换流举例
  2. Nginx出现403 forbidden (13: Permission denied)报错的四种原因
  3. Linux一键安装web环境全攻略phpstudy版
  4. PHP:验证手机号码合法性
  5. 第一节:python提取PDF文档中的图片
  6. sqlite3 新建数据库的过程
  7. 九度oj 题目1180:对称矩阵
  8. 数位dp 3943 二分法
  9. centos6.4下安装mysql
  10. lines-HDU5124(区间处理 +离散化)