上一篇文章翻译了一下谷歌官方给出的一些关于Fragment的介绍,现在我们就开始使用Fragment嵌套代替之前由Activity完成的一些任务。
我们想要用fragment实现类似于网易云音乐(安卓版)的整个框架,我简单画了个思维导图:
传统的方式来实现这个结构,需要用到很多Activity,我们这里只用一个Activity,其余的全部采用Fragment来实现。通过代码可以看出来fragment是相当灵活的,比起Activity的实现方式,显然具有优势。
实现代码
首先我们的MainActivity的代码需要一个fragment,布局代码如下:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@null"
android:fitsSystemWindows="true"
android:orientation="vertical">
<include layout="@layout/layout_main_header" />
<FrameLayout
android:id="@+id/fragment_container"
android:layout_width="match_parent"
android:layout_height="0dip"
android:layout_weight="1.0"
android:background="@color/background_color" />
<include layout="@layout/layout_main_footer" />
</LinearLayout>
注意这里的footer和header,这里可用来实现下面的播放栏和标题栏。
中间的FrameLayout进行嵌套,完成其余所有的UI界面。
MainActivity代码如下:
public class MainActivity extends FragmentActivity<