onattach() //fragment和activity建立关联的时候调用,被附加到activity中去 oncreate() //系统会在创建fragment时调用此方法,可以初始化资源文件等 oncreateview() //系统会在fragment首次绘制其用户界面时调用此方法。该方法中返回的 view 必须是fragment布局的根视图,也可以返回 null。 onviewcreated() //在fragment被绘制后,调用此方法,可以初始化控件资源 onactivitycreated() //activity被渲染绘制出来后 ondestroyview() //布局被移除时调用 ondetach() //fragment和activity解除关联的时候调用
重写oncreateview方法引入布局
public class fragment extends fragment { @override public view oncreateview(layoutinflater inflater, viewgroup container, bundle savedinstancestate) { return inflater.inflate(r.layout.fragment, container, false); } }
使用事务之前,需要先获取fragmentmanager
//事务开启 fragmenttransaction transaction = fm.bengintransatcion(); //添加一个fragment transaction.add() //清除一个fragment,如果没有添加进回退栈实例会被销毁 transaction.remove() //移除一个fragment transaction.detach() //替换一个fragment transaction.replace() //隐藏一个fragment transaction.hide() //显示一个fragment transaction.show() //添加事务动画 transaction.settransition() //添加进回退栈 transaction.addtobackstack(string) //提交事务 transatcion.commit()
通过activity维护一个回退栈来保存每次fragment事务发生的变化
如果将fragment任务添加到回退栈,当用户点击后退按钮时将看到上一次的保存的fragment
如果使用replace()方法,fragment没有添加到回退栈,fragment将会被销毁
如果使用remove()方法,fragment的视图将会销毁
如果使用hide()方法隐藏fragment,然后添加到回退栈,再次back,view视图将会保存
添加回退栈addonbackstackchangedlistener()监听器
//获取fragment管理器 getfragmentmanager() //获取fragment的实例 findfragmentbyid()或者findfragmentbytag() //获取绑定的activity的实例 getactivity() //避免重复创建实例 @override protected void oncreate(bundle savedinstancestate){ super.oncreate(savedinstancestate); setcontentview(r.layout.activity_main); if(savedinstancestate == null){ //在创建fragment时调用oncreate方法判断savedinstancestate 非空 } } //旋转屏幕,不重新加载activity,保存fragment android:configchanges="orientation|screensize“
如对本文有疑问, 点击进行留言回复!!
LongClick原理、上下文菜单原理、EditText长按弹窗原理、WebView长按弹窗自定义、修复WebView全选重复bug ———————————————— 版权声明:本文为CSDN博主「
JobScheduler 实现 特定时间,特定条件(系统空闲,电池电量,磁盘空间 ……)下执行任务
温习Android基础知识——《第一行代码(第三版)》读书笔记 Chapter 10 Service
网友评论