我们有一个 ExpandableListView,其中包含大量的父项和子项。
当打开一个“父级”时,我们会自动关闭先前打开的组,以便在任何一个顶部只打开一个组。但是,我们希望该组出现在可见数据的当前顶部。换句话说,“父母”应该是列表中第一个可见的,随后是孩子。
实际发生的是它正确打开它,但它是随机定位的。在大多数情况下,顶部可见行实际上是子项之一,我们必须向后滚动才能到达父项。
是否有某种方法可以强制在视图中显示为顶线的内容。
我们有一个 ExpandableListView,其中包含大量的父项和子项。
当打开一个“父级”时,我们会自动关闭先前打开的组,以便在任何一个顶部只打开一个组。但是,我们希望该组出现在可见数据的当前顶部。换句话说,“父母”应该是列表中第一个可见的,随后是孩子。
实际发生的是它正确打开它,但它是随机定位的。在大多数情况下,顶部可见行实际上是子项之一,我们必须向后滚动才能到达父项。
是否有某种方法可以强制在视图中显示为顶线的内容。
所以,经过一番挣扎,我们设法找到了解决方案:
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;
}
});