Fragment 学习

来源:互联网 发布:php新手用什么框架好 编辑:程序博客网 时间:2024/05/19 20:00

Fragment 学习

Android在3.0中引入了fragments的概念,主要目的是用在大屏幕设备上——例如平板电脑上,支持更加动态和灵活的UI设计。平板电脑的屏幕要比手机的大得多,有更多的空间来放更多的UI组件,并且这些组件之间会产生更多的交互Fragment允许这样的一种设计,而不需要你亲自来管理view hierarchy的复杂变化。通过将activity的布局分散到fragment中,可以在运行时修改activity的外观,并在由activity管理的back stack中保存那些变化。

Fragment 的优点

1 组件化,便于重用,便于在手机和平板上重用。

2 同activity 一样有生命周期,这就意味着可以由系统管理,并在状态变化时候收到系统的通知,同样当activity被回收的时候,你可以在保存fragment 的状态。

3 支持事务堆栈,可以方便还原到前一个状态,不象以前淘金岛项目中还要自己建个框架来维持 activity 里面的堆栈。


Fragments 关键类

Fragments Fragments 组件。FragmentsManager 管理一个activity 关联的所有的fragments 。FragmentTransaction 管理 Fragment 的事务,一系列的Fragment 变化可以定义为一个整体事务,用户可以对一个整体事务进行回滚。

Fragment 的detach 状态 。

一个 Fragment 除了可以被 FragmentTransaction remove 删除,以及hide 隐藏外,还可以被detach 。detach 的好处就是在 remove 和 hide 之间 ,当一个fragment 被detach 后,他本身的状态虽然还保持住,但是它的view 却被avtivity 的ViewTree丢弃掉,下次atach 的时候 ,还会调用 onCreateView 重新创建视图,注意 此时 onattach 不会被调用,它只会第一次被调用。


参考

http://blog.sina.com.cn/s/blog_69a4fbd70100r5j4.html