フラグメントのライフサイクル-表示/非表示時にどのメソッドが呼び出されますか?

フィリップ・ジャホダ

次の方法を使用して、フラグメントを表示/非表示にして(NavigationDrawerで)フラグメントを切り替えています。

protected void showFragment(int container, Fragment fragment, String tag, String lastTag, boolean addToBackStack ) {

        FragmentManager fragmentManager = getSupportFragmentManager();
        FragmentTransaction transaction = fragmentManager.beginTransaction();

        if ( lastTag != null && !lastTag.equals("")) {
            Fragment lastFragment = fragmentManager.findFragmentByTag( lastTag );
            if ( lastFragment != null ) {
                transaction.hide( lastFragment );
            }
        }

        if ( fragment.isAdded() ) {
            transaction.show( fragment );
        }
        else {
            transaction.add( container, fragment, tag );
        }

        if ( addToBackStack ) {
            transaction.addToBackStack( tag );
        }

        transaction.commit();

        // set the active tag
        activeFragTag = tag;
    }

表示または非表示にしたときに、フラグメントライフサイクルのどのメソッドが呼び出されるのかがわかりません。(onShow()やonHide()などのメソッドがないため、何を使用すればよいかよくわかりません)。特定のフラグメントを表示および非表示にしたときに特定のアクションを実行したいと思います。

セルゲイ・シャファレンカ

アクティビティのライフサイクルと同様に、Androidはフラグメントが表示されるonStart()を呼び出します。onStop()通常、フラグメントが非表示になったときに呼び出されますが、後で呼び出すこともできます。

レイアウトによってonStart()は、フラグメントがまだ表示されていない場合でもAndroidが呼び出すことができますが、フラグメントは表示されている親コンテナに属しています。たとえば、これはメソッドandroid.support.v4.view.ViewPagerをオーバーライドする必要がある場合に有効ですFragment.setUserVisibleHint()いずれにせよ、BroadcastReceiversまたは他のリスナーを登録/登録解除する必要がある場合、それらは常に呼び出されるためonStart()onStop()メソッドを安全に使用できます

注:一部のフラグメントコンテナーは、非表示のフラグメントを開始したままにすることができます。この状況を処理するには、をオーバーライドできますFragment.onHiddenChanged(boolean hidden)ドキュメントよると、フラグメントをユーザーに表示するには、フラグメントを開始して表示する(非表示にしない)必要があります。

更新:を使用するandroid.support.v4.widget.DrawerLayoutと、ドロワーが開いている場合でも、ドロワーの下のフラグメントが開始され、表示されたままになります。この場合コールバックを使用DrawerLayout.setDrawerListener()してリッスンする必要がonDrawerClosed()ありonDrawerOpened()ます。

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

子クラスから親クラスのメソッドを呼び出しますが、ログファイルに表示されません

分類Dev

onActivityCreatedはフラグメントのライフサイクルでいつ呼び出されますか?

分類Dev

Androidフラグメントのライフサイクル:onResumeが2回呼び出されました

分類Dev

iOS-UIViewが画面に表示されたら、どのメソッドを呼び出しますか?

分類Dev

フラグメントのライフサイクルはviewpager内でどのように機能しますか?ナビゲーションの変更時にonStopが呼び出されないのはなぜですか?

分類Dev

フォアグラウンドのアプリでメモリ不足がクラッシュした場合、アプリデリゲートのライフサイクルのどの部分が呼び出されますか?

分類Dev

隠されたフラグメントのライフサイクル

分類Dev

フラグメントのライフサイクル中にonAttachが呼び出されるのはいつですか?

分類Dev

onPauseからOnResumeまでのフラグメントライフサイクル

分類Dev

フラグメントのライフサイクルに関する混乱

分類Dev

フラグメントのレルムライフサイクル

分類Dev

フラグメントのレルムライフサイクル

分類Dev

実行時にインターフェイスメソッドが呼び出されるタイミングをどのように決定しますか?

分類Dev

フラグメントとDialogFragmentのライフサイクルの関係

分類Dev

AndroidフラグメントのライフサイクルとGoogleマップ

分類Dev

replace()が呼び出されたときのフラグメントのライフサイクルは何ですか?

分類Dev

バックグラウンドからフラグメントを戻す場合のAndroidフラグメントのライフサイクル

分類Dev

ポケットベルとフラグメントのライフサイクルを表示する

分類Dev

mainメソッドからJFrameサブクラスを呼び出すと、空白のJFrameが表示されます。どうすれば修正できますか?

分類Dev

MMDrawerコントローラーを閉じた後、どのビューコントローラーのライフサイクルメソッドがswift4で呼び出されますか?

分類Dev

MMDrawerコントローラーを閉じた後、どのビューコントローラーのライフサイクルメソッドがswift4で呼び出されますか?

分類Dev

NavigationDrawerイベントハンドラメソッドが画面の回転時に呼び出されます

分類Dev

フラグメントトランザクション中のフラグメントのライフサイクルメソッド呼び出しを理解する

分類Dev

Angular2ルーティングの子コンポーネントからrouter.parent.navigateメソッドを呼び出すときに、コンポーネントコンストラクターとルーターライフサイクルフックがトリガーされない

分類Dev

モーダルダイアログが却下されたときに、どのライフサイクルメソッドがイオンで呼び出されたか

分類Dev

Application.ActivityLifecycleCallbacksは、アクティビティのライフサイクルメソッドの前に同期的に呼び出されますか?

分類Dev

Spring Controllerメソッドが再度呼び出され、独自のメソッドの結果が表示されます

分類Dev

AppCompatフラグメントのライフサイクルが変更されました

分類Dev

React JS componentDidMountライフサイクルメソッドで呼び出されたアラートは、最初のレンダリングの後ではなく、前にポップアップします

Related 関連記事

  1. 1

    子クラスから親クラスのメソッドを呼び出しますが、ログファイルに表示されません

  2. 2

    onActivityCreatedはフラグメントのライフサイクルでいつ呼び出されますか?

  3. 3

    Androidフラグメントのライフサイクル:onResumeが2回呼び出されました

  4. 4

    iOS-UIViewが画面に表示されたら、どのメソッドを呼び出しますか?

  5. 5

    フラグメントのライフサイクルはviewpager内でどのように機能しますか?ナビゲーションの変更時にonStopが呼び出されないのはなぜですか?

  6. 6

    フォアグラウンドのアプリでメモリ不足がクラッシュした場合、アプリデリゲートのライフサイクルのどの部分が呼び出されますか?

  7. 7

    隠されたフラグメントのライフサイクル

  8. 8

    フラグメントのライフサイクル中にonAttachが呼び出されるのはいつですか?

  9. 9

    onPauseからOnResumeまでのフラグメントライフサイクル

  10. 10

    フラグメントのライフサイクルに関する混乱

  11. 11

    フラグメントのレルムライフサイクル

  12. 12

    フラグメントのレルムライフサイクル

  13. 13

    実行時にインターフェイスメソッドが呼び出されるタイミングをどのように決定しますか?

  14. 14

    フラグメントとDialogFragmentのライフサイクルの関係

  15. 15

    AndroidフラグメントのライフサイクルとGoogleマップ

  16. 16

    replace()が呼び出されたときのフラグメントのライフサイクルは何ですか?

  17. 17

    バックグラウンドからフラグメントを戻す場合のAndroidフラグメントのライフサイクル

  18. 18

    ポケットベルとフラグメントのライフサイクルを表示する

  19. 19

    mainメソッドからJFrameサブクラスを呼び出すと、空白のJFrameが表示されます。どうすれば修正できますか?

  20. 20

    MMDrawerコントローラーを閉じた後、どのビューコントローラーのライフサイクルメソッドがswift4で呼び出されますか?

  21. 21

    MMDrawerコントローラーを閉じた後、どのビューコントローラーのライフサイクルメソッドがswift4で呼び出されますか?

  22. 22

    NavigationDrawerイベントハンドラメソッドが画面の回転時に呼び出されます

  23. 23

    フラグメントトランザクション中のフラグメントのライフサイクルメソッド呼び出しを理解する

  24. 24

    Angular2ルーティングの子コンポーネントからrouter.parent.navigateメソッドを呼び出すときに、コンポーネントコンストラクターとルーターライフサイクルフックがトリガーされない

  25. 25

    モーダルダイアログが却下されたときに、どのライフサイクルメソッドがイオンで呼び出されたか

  26. 26

    Application.ActivityLifecycleCallbacksは、アクティビティのライフサイクルメソッドの前に同期的に呼び出されますか?

  27. 27

    Spring Controllerメソッドが再度呼び出され、独自のメソッドの結果が表示されます

  28. 28

    AppCompatフラグメントのライフサイクルが変更されました

  29. 29

    React JS componentDidMountライフサイクルメソッドで呼び出されたアラートは、最初のレンダリングの後ではなく、前にポップアップします

ホットタグ

アーカイブ