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 不会被调用,它只会第一次被调用。
参考