Skip to main content

Basic understanding of Android Fragments and its State



What is Fragment and why did it come into existence?


Fragment is one of the highly used class/component in the current mobile and Tab application development. Its has increased the development and usability up to a right scale.  Android introduced fragments in Android 3.0 (API level 11), primarily to support more dynamic and flexible UI designs on large screens, such as tablets. Because a tablet's screen is much larger than that of a handset, there's more room to combine and interchange UI components. Fragments allow such designs without the need for you to manage complex changes to the view hierarchy. By dividing the layout of an activity into fragments, you become able to modify the activity's appearance at runtime and preserve those changes in a back stack that's managed by the activity.

For example, a news application can use one fragment to show a list of articles on the left and another fragment to display an article on the right—both fragments appear in one activity, side by side, and each fragment has its own set of lifecycle callback methods and handle their own user input events. Thus, instead of using one activity to select an article and another activity to read the article, the user can select an article and read it all within the same activity, as illustrated in the tablet layout in figure 1.






Fragment States :

Fragment class has almost similar class as Activity class. Overall an activity contains the 7 7 life cycle state and a Fragment contains 11 lifecycle state.

Activity States : 


  1. onCreate()
  2. onStart()
  3. onResume()
  4. onPause()
  5. onStop()
  6. onRestart()
  7. onDestroy()
To Understand the full flow use the following link.

http://developer.android.com/reference/android/app/Activity.html

Fragment States:
  1. onAttach()
  2. onCreate()
  3. onCreateView()
  4. onActivityCreated()
  5. onStart()
  6. onResume()
  7. onPause()
  8. onStop()
  9. onDestroyView()
  10. onDestroy()
  11. onDetach()

onAttach()


Called when the fragment has been associated with the activity (the Activity is passed in here).

onCreateView()


Called to create the view hierarchy associated with the fragment.

onActivityCreated()


Called when the activity's  onCreate() method has returned.
onDestroyView()
Called when the view hierarchy associated with the fragment is being removed.

onDetach()
          Called when the fragment is detached from Activity.






Comments

Popular posts from this blog

How to build an Android based phone gap application which supports all android Version?

As all we know, the very  first purpose of development of a phone gap based application is to support as much as platforms possible using a single code base. Though phone gap uses simple HTML, javascript and CSS, but Is it still enough to build an application which supports all android platforms. If you are using a phone KITKAT or LOLLYPOP based android phones for development, suddenly you will realize that your application  is not Jellybean and lower version. All Lists and buttons etc etc have gone Hayward. So How to correct this problem? Phone Gap has solve this problem in their very recent release using some crosswalk plugin.  Makes your Cordova application use the  Crosswalk WebView   instead of the System WebView. Requires cordova-android 4.0 or greater. Benefits WebView doesn't change depending on Android version Capabilities: such as WebRTC, WebAudio, Web Components Performance improvements (compared to older system webviews) Dr...

Native Vs Phone gap, What to use and when and why?

Well,  Currently there are millions  of application available in app stores. In that  I would say ~10% of application are based on phone gap, remaining are native. Looking at the application requirement  and the time slice available for you have to bring it in market, you should decide what to choose. So, When you must choose only native development? If your application requires access to SYSTEM APIs, in that case its compulsory to use native. If you want to access of Bluetooth, file operations, storage,  running some background operations, accessing of AT commands, communications with hardware components such as LED, navigation buttons etc. If you are building  heavy games, running algorithms to do signal processing , image processing any such heavy operations These are some of the glimpse of task, where you must use native. Phone gap will never ever will be able to give you support of proper libraries for any of these. Now,...

Design Android Tool bar with constraint layout

 Toolbar in Android plays a very important role in quick page movement.  Steps to implement toolbar in Android 1. Create a layout file toolbar.xml in r es/layout directory 2. add below code into your toolbar.xml file. 3. Customize this as per your requirement <? xml version ="1.0"  encoding ="utf-8" ?> <layout xmlns: android ="http://schemas.android.com/apk/res/android" xmlns: app ="http://schemas.android.com/apk/res-auto" xmlns: tools ="http://schemas.android.com/tools" > <androidx.appcompat.widget.Toolbar android :id ="@+id/toolbar" android :layout_width ="match_parent" android :layout_height ="?attr/actionBarSize" android :background ="@color/colorPrimaryDark" app :elevation ="0dp" app :layout_collapseMode ="pin" > <androidx.constraintlayout.widget.ConstraintLayout android ...