我希望我能清楚地表达我的问题。
我正在处理一个遗留项目,并且有一个看起来像这样的特定屏幕:
大矩形是 aFragment
并且多个矩形是aExpandableListFragment
内的每个ViewPager
每个内容ExpandableListFragment
都是通过 JSON 从服务器加载的。
- 在我创建并设置关联的列表适配器之后,我每次
ExpandableListFragment
向服务器发送一个请求以获取其内部的 JSON 数据。onActivityCreated
- 这个请求是异步的,并且有一个回调来加载获取的数据。
- 数据因此显示为 ExpandableList,索引 (0) 处的组已展开。
ViewPager
我可以根据包含的大小向左或向右滚动ExpandableListFragment
- 我已经想出为每个
ExpandableListFragment
确切发送一个请求。 - 但是,假设我太快地向左(或向右)走了这么远。例如,我的索引号为 12。
- 然后对索引号 0 的请求完成,我的回调被调用。
- 我还
IllegalStateException
没有创建内容视图。 异常的负责行是,方法是回调方法。
public void processResult(ScheduleListJSON response) { setListData(response); adapter.notifyDataSetChanged(); // The problem line is here. getExpandableListView().setOnChildClickListener(ProgramScheduleExpandableList.this); if (getExpandableListAdapter().getGroupCount() > 0) { getExpandableListView().expandGroup(0); }
}
我认为这是因为我已经向右走得太远了,我的回调(索引 0)在这个方法中处理的列表视图已经消失了。
问题:关于如何实现我的意图有什么建议吗?展开响应的组视图,该响应可能很晚才到达,即使用户没有离开主 Activity,它也可能已经离开,因为片段离屏幕太远了。
非常感谢您提前。
更新
哦等等,mPager.setOffscreenPageLimit(int)
与保证有多少个寻呼机内的列表视图可用有关吗?