LifeCycle

Fragment lifecycle is similar to Activity lifecycle

  • Lifecycle callbacks define how Fragment behaves in each state

    • States

      • Active(or Resumed)

      • Paused

      • Stopped

@Override onCreate(Bundle savedInstanceState):

  • System calls onCreate() when the Fragment is created

  • Initialize Fragment components and variables (preserved if the Fragment is paused and resumed)

  • Always include super.onCreate(savedInstanceState) in lifecycle callbacks

@Override onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState):

  • Inflate XML layout—required if Fragment has a UI

  • System calls this method to make Fragment visible

  • Must return the root View of Fragment layout or null if the Fragment does not have a UI

onActivityCreated(): Called when the Activity onCreate() method has returned

Use onDestroyView() to perform action after Fragment is no longer visible

  • Called afteronStop() and before onDestroy()

  • View that was created in onCreateView() is destroyed

  • A new View is created next time Fragment needs to be displayed

Activity Context

When Fragment is active or resumed:

View listView = getActivity().findViewById(R.id.list);

Get Fragment by calling findFragmentById() on FragmentManager:

ExampleFragment fragment = (ExampleFragment)
     getFragmentManager().findFragmentById(R.id.example_fragment);
// ...
mData = fragment.getSomeData();

Add Fragment to back stack: addToBackStack(null)

  • Host Activity maintains back stack even after Fragment is removed

  • Allows navigation with Back button

fragmentTransaction.add(R.id.fragment_container, fragment);
fragmentTransaction.addToBackStack(null);
fragmentTransaction.commit();

Last updated