Android 可展开列表视图滚动位置

Android 可展开列表视图滚动位置,android,listview,scrollview,expandablelistview,Android,Listview,Scrollview,Expandablelistview,我试图保持上次滚动的位置,并用新数据填充适配器,但滚动位置不变。在我的场景中,我每5秒钟更新一次expandablelistview,每5秒钟更新一次新项目,但最后一次滚动位置由用户保留 我已经搜索了很多关于它的内容,并找到了一些解决方案,但每次我设置滚动位置时,它仍然表现得非常糟糕 我正试图通过以下方法实现这一目标: activity.runOnUiThread(new Runnable() { @Override public void run() { state =

我试图保持上次滚动的位置,并用新数据填充适配器,但滚动位置不变。在我的场景中,我每5秒钟更新一次expandable
listview
,每5秒钟更新一次新项目,但最后一次滚动位置由用户保留

我已经搜索了很多关于它的内容,并找到了一些解决方案,但每次我设置滚动位置时,它仍然表现得非常糟糕

我正试图通过以下方法实现这一目标:

activity.runOnUiThread(new Runnable()
{
    @Override public void run() {
        state = list.onSaveInstanceState();
            if(settings != null) {
                if (mode.equals("Now")) {
                   info_panel = new esInfoListAdapter(activity, data, expanHash, false, esActivity.lastgrpPosition);
                }
                else {
                    info_panel = new esInfoListAdapter(Activity.this, data, tchildData,  true, lastgrpPosition);
                }
            }
            list.setAdapter(info_panel);
            if(state != null)
                list.onRestoreInstanceState(state);

            info_panel.notifyDataSetChanged();
        }
    }
});

因此,在我更新expandable
listview
之前,会调用此方法。简而言之,每五秒钟。我正在使用
Parceable
对象保存
list.onSaveInstanceState()list.onRestoreInstanceState(state)当更新新数据时,问题是它有时有效,有时无效?我错过了什么把戏吗?谢谢你的帮助。

我还没有使用ExpandableListView,但我可能会。我认为应该结合使用getFirstVisiblePosition、getLastVisiblePosition和getExpandableListPosition等方法。我认为获得groupPosition对于用户来说已经足够了。我引用的链接是

为什么要将适配器称为信息面板?这会导致代码不可读。如果设置新适配器,则不需要notifyDatasetChanged。为什么不保存滚动位置并在以后恢复?但我如何保存滚动位置,即point,我调用info_panal,因为我的活动中有不同的面板…您将滚动位置放入变量中,然后再次使用该变量。我不理解你的不同面板,但如果它们都是适配器,那么就称它们为所有适配器。你主要需要getFirstVisiblePosition()和getExpandableListPosition()的代码吗?好的,如果我能有一些代码片段或示例就可以了。谢谢