Android ExpandableListView将组内容滚动到视图中

时间:2015-12-11 17:39:59

标签: android expandablelistview

我正在尝试在Android中实现展示手风琴类型行为的ExpandableListView(一次只能打开一个组)。在setOnGroupExpandListener中添加代码以在打开另一个组时折叠一个组非常简单(见下文)。

getExpandableListView().setOnGroupExpandListener(new ExpandableListView.OnGroupExpandListener() {
    @Override
    public void onGroupExpand(int groupPosition) {
        if (lastExpandedChapter != -1
                && groupPosition != lastExpandedChapter) {
            getExpandableListView().collapseGroup(lastExpandedChapter);
        }
        lastExpandedChapter = groupPosition;
    }
});

但是,我注意到这似乎混淆了ExpandableListView中的默认滚动逻辑。扩展组时,默认滚动将确保组的内容可见(根据需要向下滚动以查看它)。这基本上就是我想要的。

当我添加代码以在展开新组时自动折叠先前打开的组时,如果打开的组低于以编程方式关闭的组,则滚动会有点不稳定。列表视图滚动得太远了。如果我单击以关闭组,它工作正常,但当我在处理程序中以编程方式执行时,滚动关闭。

任何建议如何(A)更改自动折叠代码以使其不会混淆默认滚动或(B)以编程方式将列表视图的滚动调整到正确的位置?

0 个答案:

没有答案