Fragment的快速入门

现在在开发项目的时候都是经常用到Fragment,但是有些人会用,不知道Fragment相比Activity占有哪些优势?接下来我就为大家解开这个迷惑,希望对大家有所帮助。

第一 Fragment的出现背景。

       自从Android 3.0中引入fragments 的概念,根据词海的翻译可以译为:碎片、片段。其上的是为了解决不同屏幕分辩率的动态和灵活UI设计。大屏幕如平板小屏幕如手机,平板电脑的设计使得其有更多的空间来放更多的UI组件,而多出来的空间存放UI使其会产生更多的交互,从而诞生了fragments 。fragments 的设计不需要你来亲自管理view hierarchy 的复杂变化,通过将Activity 的布局分散到frament 中,可以在运行时修改activity 的外观,并且由activity 管理的back stack 中保存些变化。

第二 Fragment的优点。

     1.Fragment可以使你能够将activity分离成多个可重用的组件,每个都有它自己的生命周期和UI。

     2.Fragment可以轻松得创建动态灵活的UI设计,可以适应于不同的屏幕尺寸。从手机到平板电脑。

     3.Fragment是一个独立的模块,紧紧地与activity绑定在一起。可以运行中动态地移除、加入、交换等。

     4.Fragment提供一个新的方式让你在不同的安卓设备上统一你的UI。

     5.Fragment 解决Activity间的切换不流畅,轻量切换。

     6.Fragment 替代TabActivity做导航,性能更好。

     7.Fragment 在4.2.版本中新增嵌套fragment使用方法,能够生成更好的界面效果。

     8.Fragment做局部内容更新更方便,原来为了到达这一点要把多个布局放到一个activity里面,现在可以用多Fragment来代替,只有在需要的时候才加载Fragment,提高性能。

第三.Fragment的使用,这里我在另一篇博客也有讲解。

1. 两种添加方法

    在activity的layout文件中声明fragment,通过代码将fragment添加到一个已存在的ViewGroup

2. Fragmeng与Activity交互

Fragmeng通过getActivity()获得所在Activity上下文

Activity通过getFragmentManager()获得Fragmeng实例(findFragmentById,findFragmentByTag);

通过FragmentTransaction可以增加、移除或者代替Fragments;

通过fragmentTransaction.addToBackStack()可以把fragmeng保存到栈,响应后退按钮;

3. 使用Fragment扩展类更轻松

     1.DialogFragment

    2.ListFragment

    3.WebViewFragment

4.现在开发用的比较多的是FragmentTabHost的布局方式。项目代码供参考。

      <android.support.v4.app.FragmentTabHost
        android:id="@android:id/tabhost"
        android:layout_width="match_parent"
        android:layout_height="match_parent" >
        <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:orientation="vertical" >
            <TabWidget
                android:id="@android:id/tabs"
                android:layout_width="match_parent"
                android:layout_height="50dp"
                android:layout_weight="0"
                android:orientation="horizontal"
                android:tabStripLeft="@color/white"
                android:tabStripRight="@color/black" />
            <FrameLayout
                android:id="@+id/realtabcontent"
                android:layout_width="match_parent"
                android:layout_height="0dp"
                android:layout_weight="1" />
        </LinearLayout>
    </android.support.v4.app.FragmentTabHost>


你可能感兴趣的:(android,android,android,Android开发,Fragment优点,Fragment的使用简,Fragment的发展)