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

    xiaoxiao2021-12-15  6

    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,手机模式下跳转ActivityContentFragment两个activity_main布局文件 位于layout-sw600dp 里面有两个,name分别用前面两个类位于layout,里面有一个,name为TitleFragment创建MainActivity,加载activity_main
    转载请注明原文地址: https://ju.6miu.com/read-1000266.html

    最新回复(0)