2013-04-28 10 views
5

私のアプリは、メイン画面にたくさんの画像を表示します。ユーザーは、画像に触れることによって、製品に関するより多くの情報を見ることができる。メイン画面の一部が表示されなくなり、製品の詳細部分が表示されます。戻るキーをクリックすると、メイン画面のフラグメントが再度表示されます。隠されたフラグメントでonResume()が呼び出されるのはなぜですか?

次のようにフラグメントtransacionが実装されています

​​

すべてはユーザーが製品の詳細フラグメントに共有ダイアログ(標準のAndroidのシェアの意図を)openesと背中をクリックしてダイアログを閉じた場合を除いて、正常に動作しますキー。何らかの理由で、(隠されている)メインスクリーンフラグメントのonResumeメソッドが呼び出されます。これは正常に動作しますが、

super.onResume(); 
    if(this.isHidden()){ 
     Log.d("tab","dont resume tab0fragment because it is hidden"); 
     return; 
    } 

疑問が残る: 私は、メイン画面のフラグメントにonResumeメソッドに次のコードを追加することで問題を解決し、隠しフラグメントで呼び出さonResume()であるのはなぜときに、ユーザーが閉じます他のフラグメントの共有ダイアログ?

答えて

3

隠れたフラグメントは、依然としてフラグメントのライフサイクルに従います。 documentationのフローチャートをご覧ください。 User navigates backwards or the fragment is removed/replaced.onDestroyView()が表示されます。ここでは、The fragment returns to the layout from the back stack,がメイン画面の部分です。

関連する問題