左側のメニューである NavigationDrawer があります。このボタンのボタンをタッチすると、次のような新しいフラグメントがロードされます。
fragmentManager.beginTransaction()
.replace(R.id.frame_container, fragment,""+tagFragment).commit();
fragmentManager.executePendingTransactions();
カメラ インスタンスを使用するフラグメントがあります。フラグメントは他のフラグメントよりも読み込みが遅くなります。他のフラグメントのようにカメラ フラグメントを読み込むと、アプリがゆっくりとフリーズするため、メイン アクティビティにプログレス バーを追加したいと考えています。カメラ フラグメントが読み込まれると、コールバックを使用して progressView を削除します。
そうするために、進行状況バーを表示し、遅延後にフラグメントをロードします:
RelativeLayout layoutLoadingIndicator = (RelativeLayout)findViewById(R.id.rl_loading_indicator);
layoutLoadingIndicator.setVisibility(View.VISIBLE);
Handler mainHandler = new Handler(this.getMainLooper());
Runnable task = new Runnable() {
@Override
public void run() {
fragmentManager.beginTransaction()
.replace(R.id.frame_container, fragment,""+tagFragment).commit();
fragmentManager.executePendingTransactions(); }
};
worker.schedule(task, 2, TimeUnit.SECONDS);
カメラ フラグメントは 2 秒後に読み込まれ、正常に動作します。問題は、新しいフラグメントをロードしたいときに、画面上にあるのはまだカメラフラグメントであり、フラグメントがカメラフラグメントの下に置き換えられることです。Runnable タスクを削除し、他のフラグメントと同じようにカメラ フラグメントをロードしても問題はありません。他のフラグメントに切り替えることができます。
問題はRunnableタスクとフラグメントマネージャーにあると思いました。
何か案は ?ありがとう。