在我的应用程序中,我有一个动态的ExpandableListView以及一个刷新按钮。当用户单击刷新按钮时,将下载最新数据,并且我呼叫notifyDataSetChanged()以更新UI。

问题是notifyDataSetChanged()折叠了以前打开的所有组,这给用户带来了糟糕的体验。有办法避免这种情况吗?

谢谢

最佳答案

这是我使用的方法。 setExpandedGroup(),然后再更新UI。我的getExpandedIds()也是idsExpand = new ArrayList<Integer>()数组。

public static void setExpandedGroup() {
        if (expListView != null
                && expListView.getExpandableListAdapter() != null) {
            final int groupCount = expListView.getExpandableListAdapter().getGroupCount();
            for (int i = 0; i < groupCount; i++) {
                if (expListView.isGroupExpanded(i)) {
                    idsExpand.add(i);
                }
            }
        }

    }

    public static void getExpandedIds() {
        if (idsExpand != null) {
            final int groupCount = idsExpand.size();
            for (int i = 0; i < groupCount; i++) {
                if (expListView != null) {
                    try {
                        expListView.expandGroup(idsExpand.get(i));
                    } catch (Exception ignored) {
                    }

                }

            }
        }
    }


希望能帮助到你!

关于android - 如何防止notifyDataSetChanged折叠ExpandableListView中的打开组?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/30573107/

10-13 04:18