在我的应用程序中,我有一个动态的ExpandableListView以及一个刷新按钮。当用户点击刷新按钮时,会下载最新数据,我会调用notifyDataSetChanged()
以更新用户界面。
问题是notifyDataSetChanged()会折叠之前打开的所有组,这会导致用户体验不佳。有没有办法可以避免这种情况?
由于
答案 0 :(得分:1)
这是我使用的方法。更新setExpandedGroup()
之前UI
,然后在更新后更新getExpandedIds()
。我的idsExpand = new ArrayList<Integer>()
也是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) {
}
}
}
}
}
希望它有所帮助!