我希望我的ExpandableListView只允许一次扩展一个组。我找到了一个解决方案,通过覆盖ListViewAdapter的onGroupExpanded方法来折叠先前扩展的组:
@Override
public void onGroupExpanded(int groupPosition)
{
//collapse the old expanded group, if not the same
//as new group to expand
if(groupPosition != mLastExpandedGroup && mLastExpandedGroup != -1)
{
epView.collapseGroup(mLastExpandedGroup);
}
mLastExpandedGroup = groupPosition;
super.onGroupExpanded(groupPosition);
}
默认情况下,展开新组时,将滚动ListView,以使新组的GroupView保持可见。对于我的自定义ListView,此滚动无法正常工作(通常,新扩展组的GroupView会在屏幕外结束)。
基于android源代码,这不起作用的原因是因为在调用onGroupExpanded方法之前确定了扩展后滚动位置,因此在强制组崩溃后位置不准确。
那么,对自定义ListView的任何建议只允许一次扩展一个组,并正确滚动以便在组被扩展时可以看到GroupView?
答案 0 :(得分:0)
尝试在post()
或postDelayed()
内调用滚动功能,以确保滚动显示的时间晚于默认滚动。