android.support.v4.app.getFragmentManager() returns null?

前端 未结 4 1411
不知归路
不知归路 2020-12-29 20:41

This is my Stacktrace:

FATAL EXCEPTION: main
java.lang.NullPointerException
at com.example.test.fragments.LoadingFragment$1.run(LoadingFragment.java:66)
at a         


        
4条回答
  •  忘掉有多难
    2020-12-29 20:46

    From android.support.v4.app.Fragment source:

    // The fragment manager we are associated with.  Set as soon as the
    // fragment is used in a transaction; cleared after it has been removed
    // from all transactions.
    FragmentManagerImpl mFragmentManager;
    

    Apparently getFragmentManager() returns support version of fragment manager but only during a transaction (or parent fragment's child fragment manager).

    I'm going to use this:

    public FragmentManager getHostFragmentManager() {
        FragmentManager fm = getFragmentManager();
        if (fm == null && isAdded()) {
            fm = ((AppCompatActivity)getActivity()).getSupportFragmentManager();
        }
        return fm;
    }
    

提交回复
热议问题