在我的应用程序中,我有一个动态的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/