Fragment是一种可以嵌入在Activity中的UI片段,Fragment不能够单独使用,需要嵌套在Activity中使用,其生命周期也受到宿主Activity的生命周期的影响。
Fragment的四种状态: 运行、暂停、停止、销毁。
Fragment两个核心类
- FragmentManager:管理和维护Fragment。
- FragmentTransaction:对Fragment的添加、删除等操作都要通过事务方式进行。
FragmentTransaction的常用方法:
transaction.add() :往Activity里面添加一个片段transaction.remove() :从Activity中移除一个Fragment,如果被移除的Fragment没有添加到回退栈,这个Fragment实例将会被销毁transaction.replace() :使用另一个Fragment替换当前的,实际上是remove()然后add()的合体。
回退栈 添加一个Fragment事务到回退栈:
FragmentTransaction.addToBackStack(String);
如果将Fragment任务添加到回退栈,当用户点击后退按钮时,将看到上一次的保存的Fragment,一旦Fragment完全从后退栈中弹出,用户再次点击后退键,则退出当前Activity。 调用replace() ,如果不添加事务到回退栈,前一个Fragment实例会被销毁。如果添加到了回退栈,Fragment实例不会被销毁,但是视图层次依然会被销毁。
不同情况下前一个Fragment实例销毁情况:
| add() | replace() | 返回键 |
---|
没添加到回退栈 | 不销毁 | 销毁 | 退出Activity | 添加到回退栈 | 不销毁 | 不销毁 | 回退显示前一个Fragment |
参考博客: Fragment基本使用 https://www.jianshu.com/p/a4c51309bc19
|