0

我们有一个 ExpandableListView,其中包含大量的父项和子项。

当打开一个“父级”时,我们会自动关闭先前打开的组,以便在任何一个顶部只打开一个组。但是,我们希望该组出现在可见数据的当前顶部。换句话说,“父母”应该是列表中第一个可见的,随后是孩子。

实际发生的是它正确打开它,但它是随机定位的。在大多数情况下,顶部可见行实际上是子项之一,我们必须向后滚动才能到达父项。

是否有某种方法可以强制在视图中显示为顶线的内容。

4

1 回答 1

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;
        }
    });
于 2012-06-06T08:00:38.813 回答