0

我希望我能清楚地表达我的问题。

我正在处理一个遗留项目,并且有一个看起来像这样的特定屏幕: 屏幕

大矩形是 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)与保证有多少个寻呼机内的列表视图可用有关吗?

4

0 回答 0