Could somebody please explain the exact advantages of using Fragments? In what cases should we use Fragments?
For what I understand, this framework:
-
Helps reuse existing code – if I implement functionality in a Fragment, then it’s relatively easy to display this fragment in multiple parts of my app, when the functionality is needed.
-
Helps dealing with multiple screen sizes – a device with a huge screen may be able to display multiple fragments at once, and for smaller devices I can display the fragments in separate Activities.
Is there more to this framework?
Edit:
I’ve been using Fragments quite extensively in a larger project for 3.0 tablets. To me the greatest advantage was that using fragments I could break up the logic that would go in a single, monolithic Activity into multiple, smaller Fragments. Big screens mean huge Activities, difficult to read, understand (especially to new team members), develop and maintain. Fragments certainly helped in this matter.
Animated effects available when dynamically adding and removing fragments from the screen
Automatic BACK stack management, so the BACK button can remove dynamically-added fragments before eventually exiting the activity
Integration with the action bar for tabs, as a replacement for
TabHostIntegration with the action bar for “list”-based navigation (really a
Spinnerin the action bar, toggling between different fragments)Somewhat easier handling of configuration changes courtesy of
setRetainInstance(true)Also, responding to @Jim Blackler:
Everything offered by fragments can, by definition, be done using
Views, simply because fragments are built on top of the view framework. However, fragments make more complicated scenarios involving dynamic fragments a bit easier IMHO.Moreover, fragments in conjunction with the action bar seem quite likely to be a long-term area of attention for Google, meaning I expect a fair amount of additional work in this area over the next 2-3 releases.