您的位置:首页 > 其它

第四章 手机平板要兼顾-探究碎片

2016-12-08 16:11 113 查看

Fragment的使用方式

在Fragment中模拟返回栈

FragmentTransaction中提供了一个addToBackStack方法,用于将一个事务添加到回退栈中,参数可写为null。

Fragment的生命周期

Fragment的状态和回调

状态

运行状态

可见、它所关联的activity是运行状态

暂停状态

依旧是可见的,只是它所关联的activity处于了暂停状态

停止状态

它所关联的activity处于了停止状态

通过FragmentTransaction的remove、replace方法将fragment从activity中移除 ,但是在提交事务之前,通过addToBackStack方法将该事务添加到返回栈,此时也会进入停止状态。进入停止状态的fragment对用户来说是完全不可见的,有可能被系统回收。类比activity的onStop调用之后(进入停止状态)

销毁状态

activity销毁,fragment也就跟着销毁了

通过FragmentTransaction的remove、replace方法将fragment从activity中移除 ,但是在提交事务之前,没有通过addToBackStack方法将该事务添加到返回栈,此时也会进入销毁状态。

回调

onAttach

与activity建立关联

onCreate

创建

onCreateView

为fragment创建视图的时候调用

onActivityCreated

确保与fragment关联的activity创建完毕调用,注意:fragment停止的时候再次恢复会直接调用onCreateView,然后调动该方法,activity一直存在。

onStart

对应activity的方法(注意:只有在第一次在activity中加载,并且activity也是重新加载才会对应,对于替换fragment等造成的fragment重新执行方法不会与activity对应)

onResume

对应activity的方法(注意:只有在第一次在activity中加载,并且activity也是重新加载才会对应,对于替换fragment等造成的fragment重新执行方法不会与activity对应)

onPause

对应activity的方法(注意:只有在第一次在activity中加载,并且activity也是重新加载才会对应,对于替换fragment等造成的fragment重新执行方法不会与activity对应)

onStop

对应activity的方法(注意:只有在第一次在activity中加载,并且activity也是重新加载才会对应,对于替换fragment等造成的fragment重新执行方法不会与activity对应)

onDestroyView

视图被移除

onDestroy

销毁

onDetach

与activity解除关联

关于回收

fragment进入停止状态也可能因为内存不足被回收,也会调用onSaveInstanceState方法,可以再onCreate、onCreateView和onActivityCreated的参数中拿到数据

动态加载布局的技巧

使用限定符



使用最小宽度限定符

layout-sw600dp 表示宽度大于600dp就加载它

一个简易的新闻客户端

兼容手机和平板

创建两个类

TitleFragment

里面是listview,设置点击事件,通过它所依附的activity.findviewbyid去看是否包含有ContentFragment,如果有就说明是平板模式,如果没有就是手机模式。平板模式下刷新第二个fragment,手机模式下跳转Activity

ContentFragment

两个activity_main布局文件

位于layout-sw600dp 里面有两个,name分别用前面两个类

位于layout,里面有一个,name为TitleFragment

创建MainActivity,加载activity_main
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: