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