现在在开发项目的时候都是经常用到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>


更多相关文章

  1. Android实验5---通讯录(解决ListView刷新问题及一些编码规范的总
  2. Android(安卓)RecyclerView和ListView多布局实现
  3. 可左右两侧挤压傍边布局的Android抽屉
  4. 老罗的Android视频教程整理之常用布局
  5. android开发动态页面时常用的LayoutInflater实例化的三种方式
  6. Android中的布局方式(一)
  7. 对iOS APP视觉设计师的一些不成熟的小建议
  8. Android绘图机制(三) ViewGroup类的延伸
  9. 浅谈Android系统的图标设计规范

随机推荐

  1. Android中VISIBLE、INVISIBLE、GONE的区
  2. android widget ViewFlipper
  3. Android隐藏状态栏和标题栏
  4. 底部菜单
  5. CheckBox as Image use button
  6. (已解决)Android Studio JVM报错解决方案
  7. Android音频开发(3):使用AudioRecord实现录
  8. android 只能输入数字和字母并且弹出数字
  9. Android Binder原理(一)学习Binder前必须要
  10. Android消息循环