7

タブを使用するアクティビティがあり、タブはフラグメントを切り替えます。問題は、Fragment の作成時に読み込みに数秒かかるため、タブの切り替えに約 1 ~ 2 秒の遅延が生じることです。これを修正するために、単純な読み込み中のグラフィックまたは進行状況ダイアログを表示する方法を見つけようとしていました。これにより、タブが即座に変化し、すべてが完了するまで読み込み中であることを示す何かが表示されます。

フラグメントの私onCreateViewの方法は次のようになります。

FrameLayout fl;
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
    fl = (FrameLayout) inflater.inflate(R.layout.text_layout, container, false);

    doHeavyStuff();

    return fl;
 }

入れてみdoHeavyStuff()ましonStart()たが、何の役にも立ちませんでした。doHeavyStuff()また、ビュー/GUIの操作が含まれるため、スレッドは役に立ちません。

フラグメントを表示し、他のすべてが読み込まれている間に「読み込み中」情報を表示する方法についてのアイデアはありますか?

ありがとう!

マット。

4

2 に答える 2

8

onActivityCreated()

  • progress bar(またはUI要素を示す進行状況)を開始します。
  • HeavyStuffDoingAsyncTask以下に説明するを実行します。

HeavyStuffDoingAsyncTaskには次のものが必要です。

  • doHeayStuff()メソッド内のuiを更新しないのロジック。doInBackground
  • UIを更新するたびにpublishProgress()から呼び出します。doInBackground()
  • メソッドにUI更新ロジックを実装しonProgressUpdateます。
  • メソッドのプログレスバーを停止しますonPostExecute

幸運を。

于 2012-02-11T18:59:33.120 に答える
3

設定してみる

pager.setOffscreenPageLimit(no_of_fragments or pages);
于 2016-12-09T08:01:42.733 に答える