我们有一个包含大量父子条目的ExpandableListView。
当打开一个“父”时,我们会自动关闭之前打开的组,以便在任何一个顶部只打开一个组。 但是,我们希望该组出现在可见数据的当前顶部。 换句话说,“父”应该是列表中第一个可见的子项。
实际发生的是它正确地打开它但它是随机定位的。在大多数情况下,顶部可见线实际上是其中一个孩子,我们必须向后滚动才能到达父条目。
是否有某种方法可以强制显示在视图中的顶行。
答案 0 :(得分:5)
所以,经过多次努力,我们设法找到了解决方案:
categoryListView.setOnGroupClickListener(new OnGroupClickListener() {
@Override
public boolean onGroupClick(ExpandableListView parent, View v,
int groupPosition, long id) {
categoryListView.setSelectionFromTop(groupPosition, 0);
Boolean shouldExpand = (!categoryListView.isGroupExpanded(groupPosition));
categoryListView.collapseGroup(lastClickedPosition);
if (shouldExpand){
categoryListView.expandGroup(groupPosition);
}
lastClickedPosition = groupPosition;
return true;
}
});