blob: aba645923fdb822f8f8a3bbe87bd07b396f6ecad [file] [log] [blame]
page.title=Building a Dynamic UI with Fragments
page.tags=fragments,user interface,support library
helpoutsWidget=true
trainingnavtop=true
startpage=true
@jd:body
<div id="tb-wrapper">
<div id="tb">
<h2>Dependencies and prerequisites</h2>
<ul>
<li>Basic knowledge of the Activity lifecycle (see <a
href="{@docRoot}training/basics/activity-lifecycle/index.html">Managing the Activity
Lifecycle</a>)</li>
<li>Experience building <a href="{@docRoot}guide/topics/ui/declaring-layout.html">XML
layouts</a></li>
</ul>
<h2>You should also read</h2>
<ul>
<li><a href="{@docRoot}guide/components/fragments.html">Fragments</a></li>
<li><a href="{@docRoot}guide/practices/tablets-and-handsets.html">Supporting Tablets and
Handsets</a></li>
</ul>
<h2>Try it out</h2>
<div class="download-box">
<a href="http://developer.android.com/shareables/training/FragmentBasics.zip"
class="button">Download the sample</a>
<p class="filename">FragmentBasics.zip</p>
</div>
</div>
</div>
<p>To create a dynamic and multi-pane user interface on Android, you need to encapsulate
UI components and activity behaviors into modules that you can swap into and out of
your activities. You can create these modules with the {@link android.app.Fragment} class, which
behaves somewhat like a nested activity that can define its own layout and manage its own
lifecycle.</p>
<p>When a fragment specifies its own layout, it can be configured in different combinations with
other fragments inside an activity to modify your layout configuration for different screen
sizes (a small screen might show one fragment at a time, but a large screen can show two or
more).</p>
<p>This class shows you how to create a dynamic user experience with fragments and optimize your
app's user experience for devices with different screen sizes, all while continuing to support
devices running versions as old as Android 1.6.</p>
<h2>Lessons</h2>
<dl>
<dt><b><a href="creating.html">Creating a Fragment</a></b></dt>
<dd>Learn how to build a fragment and implement basic behaviors within its callback
methods.</dd>
<dt><b><a href="fragment-ui.html">Building a Flexible UI</a></b></dt>
<dd>Learn how to build your app with layouts that provide different fragment configurations for
different screens.</dd>
<dt><b><a href="communicating.html">Communicating with Other Fragments</a></b></dt>
<dd>Learn how to set up communication paths from a fragment to the activity and other
fragments.</dd>
</dl>