【问题标题】:Expandable ListView可展开的列表视图
【发布时间】:2011-10-14 12:12:54
【问题描述】:
我正在使用expandableListView进行UI设计,所以我想知道对于Android可扩展列表视图,有没有办法只允许一个列表项展开,即当你点击并展开一个项目时,所有其他项目都会自动折叠。
谢谢
【问题讨论】:
标签:
android
expandablelistview
【解决方案1】:
当您单击一个项目时,您可以遍历其余项目并折叠除您刚刚单击的项目之外的每个项目...
list.setOnGroupExpandListener(new OnGroupExpandListener() {
public void onGroupExpand(int groupPosition) {
int len = mAdapter.getGroupCount();
for(int i=0; i<len; i++) {
if(i != groupPosition) {
list.collapseGroup(i);
}
}
}
});
【解决方案2】:
您可以按照 kieran 的建议进行操作,或者如果您一次只打开一个,您可以只跟踪您最后点击的那个。您可以通过在类主体中声明 int lastclicked 来做到这一点,然后按照韩国人的建议在侦听器中声明 list.collapseGroup(lastclicked)
我会给出一个代码示例,但我使用的是手机。对不起。
但我个人更喜欢使用 lastclicked 方法而不是使用 for 循环。看起来效率更高。
【解决方案3】:
首先在您的 Activity 中实现 OnGroupExpandListener ,这将允许您添加其默认方法,然后添加该默认方法后,您需要这样做:
@Override
public void onGroupExpand(int groupPosition) {
// TODO Auto-generated method stub
int len = expadapter.getGroupCount();
for(int i=0;i<len;i++)
{
if(i!=groupPosition)
{
expandlst.collapseGroup(i);
}
}
}