私は3つのフラグメントを含む単純なものを持ってFragmentActivity
います。それぞれには、ユーザーが各フラグメントにスクロールしたときにタイトルを設定する次のメソッドが含まれています。
@Override
public void setUserVisibleHint(boolean isVisibleToUser) {
super.setUserVisibleHint(isVisibleToUser);
if (isVisibleToUser) {
getActivity().setTitle(pageTitle);
}
}
pageTitle
フラグメントによって明らかに異なります。これは、(FragmentActivity に対して) 再度開いたときにしばらくアプリケーションを離れた後、タイトルが存在せず、フラグメントをスクロールするときに設定されないことを除いて、必要に応じて機能します。これは、アプリケーションプロセスが強制終了されたことが原因である可能性があるとアドバイスされました。
どうすればこの状況に対処できるか、誰か知っていますか? プロセスが強制終了された後、メイン アプリケーションからアプリをロードし直す可能性があります (理想的ではありませんが、アプリの動作方法により、大したことではないはずです) が、どうすればよいかわかりません。している。
また、pageTitle は、FragmentAdapter から呼び出される Fragment の新しいインスタンスに設定されます (以下を参照)。再構築されているため、これが問題の原因でしょうか? タイトルのテキストをハードコーディングしたほうがよいでしょうか?
public static Fragment newInstance(String title) {
pageTitle = title;
return new Fragment();
}
次の方法で設定することで問題は解決しますか(テストできますが、時間がかかるので、思いついたのでここで質問します):
getActivity().setTitle("Page Title");
おそらくonResume()
これを解決するためのタイプの取引があることは知っていますが、それを機能させることができないようですので、ヘルプ/ガイダンス/解決策をいただければ幸いです。うまくいけば、私のコードについてもっと知りたい場合は、質問を十分に明確にしてください.