0

setRetainInstance メソッドに関する多くの情報を見つけましたが、このメソッドを Navigation Drawer Activity に実装する方法を知りたいですか?

私は基本的に持っています:

  • 次を含むアクティビティ
  • を含むNavigationDrawerFragment...
  • TopLevelMapFragment (Google マップを表示)。

私の目的は、ユーザーが画面を回転させたときにマップ全体とそのトラックが再読み込みされないようにすることです。Navigation DrawerアクティビティのsetRetainingInstanceの基本概念は何ですか? NavigationDrawerFragment と TopLevelMapFragment で setRetainingInstance(true) を呼び出す必要がありますか?

4

1 に答える 1

0

私は最終的に私の問題の解決策を見つけました: Navigation Drawer Activity を作成したとき、Android Studio のデフォルトの Navigation Drawer Activity-template に依存していました。このテンプレートでは、FragmentTransaction- replaceメソッドが、ユーザーが Navigation Drawer 内の項目をクリックするたびに呼び出されます。問題: replace メソッドは、指定されたコンテナーにあるすべてのフラグメントを破棄します。したがって、フラグメントを存続させたい場合は、replace メソッドを使用しないでください。代わりにメソッドadd、show、hideを使用する必要があります。さらに、Google Maps-Fragment で setRetainInstance(true) メソッドを呼び出して、たとえばユーザーが画面を回転させたときにフラグメントが存続するようにします。

于 2015-05-13T23:02:07.840 に答える