0

質問を明確に表現していることを願っています。

私はレガシー プロジェクトに取り組んでおり、次のような特定の画面があります。 画面

大きな長方形は aFragmentで、複数の長方形はそれぞれ a のExpandableListFragment中にあるViewPager

それぞれのコンテンツはExpandableListFragment、サーバーから JSON 経由でロードされます。

  • 関連するリストアダプターを作成して設定した後、それぞれExpandableListFragmentにJSONデータのリクエストをサーバーに送信しました。onActivityCreated
  • このリクエストは非同期で、取得したデータをロードするためのコールバックがあります。
  • こうして表示されたデータは、インデックス (0) のグループが展開された ExpandableList として表示されます。
  • ViewPager含まれているサイズに応じて、左または右にスクロールできますExpandableListFragment
  • ExpandableListFragment私は、正確に1つずつリクエストを送信することを理解しました。
  • しかし、ここまで左 (または右) にあまりにも速く移動したとします。たとえば、私はインデックス番号 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) によってアドレス指定されたリストビューが既になくなっているのは、右に行きすぎたためだと思います。

質問: 私の意図を達成する方法について何か提案はありますか? ユーザーがメインのアクティビティを離れていなくても、フラグメントが画面から離れているため、すでに終了している可能性があるため、非常に遅れて到着する可能性のある応答のグループ ビューを展開します。

事前にどうもありがとうございました。

UPDATE ああ待っmPager.setOffscreenPageLimit(int)て、ページャー内で利用できることが保証されているリストビューの数と関係がありますか?

4

0 に答える 0