我正在使用可扩展的ListView进行UI设计,因此我想知道对于Android可扩展的ListView,是否有一种方法只允许一个列表项展开,即当您单击并展开一个项目时,所有其他项目都会自动折叠。
谢谢
我正在使用可扩展的ListView进行UI设计,因此我想知道对于Android可扩展的ListView,是否有一种方法只允许一个列表项展开,即当您单击并展开一个项目时,所有其他项目都会自动折叠。
谢谢
当你点击一个项目时,你可以循环遍历其余的项目,并折叠除了刚刚点击的那个之外的每一个项目...
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);
}
}
}
});
你可以像kieran建议的那样做,或者如果你一次只打开一个,你可以仅跟踪你上次单击的是哪个。你可以通过在类体中声明int lastclicked
,然后在监听器中按照Korean的建议,放置list.collapseGroup(lastclicked)
来实现这一点。
我想给出一个代码示例,但我现在用的是手机。抱歉。
但我个人更喜欢上次单击的方法,而不是使用for循环。它看起来更有效率。
@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);
}
}
}