Fragment

2018-03-26  本文已影响0人  古早味蛋糕
一、什么是Fragment 或者说为什么会有Fragment ?

当Android3.0之后,谷歌引入了碎片化的Fragment。为什么要使用Fragment,这是我们首先应该探讨的问题。

Android3.0主要是引入了平板,利用碎片化,可以很好的管理平板的界面,因为屏幕很大,一个页面肯定要由多个布局来构成,所以利用碎片化可以实现各个布局之间的解耦,方便管理。

为什么要在手机上也提倡使用Fragment呢,主要是因为一段代码可以在平板跟手机上运行,减少了开发的资源。对界面加载速度有要求时可以代替 Activity使用

当然随之而来的跟 Activity 类似但又不完全相同的生命周期加大了管理难度。比如:多层Fragment嵌套

那么Fragment到底是什么呢?
举个例子:如果把android 一个应用比作一个火箭,activity 就是相当于每个不同零件生产商,Fragment 就相当于每个零件生产商内部子工厂,view 就是相当于零件生产商的包装间,生产商开业了子工厂也可以开业了,生产商倒闭了子工厂也倒闭了。

为了解决屏幕和复用 才有了Fragment ,之后才有组件化和复用一说。

二、Fragment 为什么被称为第五大组件?
  1. Fragment为什么被称为第五大组件
    我们可以将Fragment称为第五大组件,因为Fragment使用的频率和自身的生命周期。同时Fragment可以动态灵活加载activity,但Fragment必须依附和加载在activity上。
    在android3.0后为了更好的解决view在大屏幕上适配和使用,而提出的。
  2. Fragment加载到Activit的两种方式
    第一种 静态加载 添加Fragment到Activity的布局文件当中
    第二种 动态加载 项目中用的比较多
    动态在activity 中添加fragment
    第一步 添加一个FragmentTransaction的实例
    第二步 用add()方法加上Fragment的对象rightFragment
    第三步 调用commit()方法使用FragmentTransaction实例改变生效
  3. FragmentPagerAdapter与FragmentStatePagerAdapter区别
    FragmentPagerAdapter在每次切换viewpager的时候他会加收内存的,所以他适合较多的界面。
    而FragmentStatePagerAdapter在切换viewpager时只是分离ui并没有回收内存,所以他适合界较少的界面。
三、Fragment 的生命周期?

开始创建Fragment对象
onAttach
onCreate
onCreateView
onViewCreated
Activity—>onCreate
onActivityCreated
Activity —>onStart
onStart
Activity —>onResume
onResume (Fragment完全初始化完毕)
onPause
Activity —>onPause
onstop
Activity —>onStop
onDestoryView
onDestory
onDetach
Activity—> onDestory activity销毁

四、Fragment 之间的通信
  1. 在fragment中调用activity中的方法getActivity
  2. 在Activity中调用Fragment中的方法 接口回调用
  3. 在Fragment中调用Fragment的方法 findFragmentById
五、Fragment管理器:FragmentManager
  1. Fragment的replace\add\remove方法
    replace是替换fragment实例
    add是添加fragment实例
    remove是删除fragment实例
  2. 未完...
上一篇 下一篇

猜你喜欢

热点阅读