博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Android fragment 回调函数改进
阅读量:5282 次
发布时间:2019-06-14

本文共 2239 字,大约阅读时间需要 7 分钟。

由于fragment的onResume()等回调的调用时机与Activity不一样,导致用起来比较麻烦,所以我重新封装了一下回调函数,十分简单。

使用时只需要继承此基类,使用onFragmentXXX系列回调即可。

 

public class AbsFragment extends Fragment {        /*-------------------------------------     * 属性     *-------------------------------------*/    /**是否已经onResume()了*/    private boolean isResume = false;    /**setUserVisibleHint(boolean)传入的值*/    private boolean isVisbleToUser = false;    /*-------------------------------------     * protected方法     *-------------------------------------*/    /**     * Fragment创建时调用的函数,建议子类重写这个方法因为生命周期比较简单     * @param savedInstanceState     */    protected void onFragmentCreate(Bundle savedInstanceState) {            }        /**     * Fragment销毁时调用的函数,建议子类重写这个方法因为生命周期比较简单     * @param savedInstanceState     */    protected void onFragmentDestroy() {            }        /**     * Fragment可见时调用的函数,建议子类重写这个方法因为生命周期比较简单     * @param savedInstanceState     */    protected void onFragmentResume() {            }        /**     * Fragment不可见时调用的函数,建议子类重写这个方法因为生命周期比较简单     * @param savedInstanceState     */    protected void onFragmentPause() {            }    /*-------------------------------------     * public方法     *-------------------------------------*/    @Override    public void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);                onFragmentCreate(savedInstanceState);    }    @Override    public void onDestroy() {        onFragmentDestroy();                super.onDestroy();    }        @Override    public void onResume() {        super.onResume();                isResume = true;        if(isVisbleToUser) {            onFragmentResume();        }    }    @Override    public void onPause() {        isResume = false;        if(isVisbleToUser) {            onFragmentPause();        }                super.onPause();    }        @Override    public void setUserVisibleHint(boolean isVisibleToUser) {        super.setUserVisibleHint(isVisibleToUser);                this.isVisbleToUser = isVisibleToUser;        if(isResume) {            if(isVisibleToUser) {                onFragmentResume();            } else {                onFragmentPause();            }        }    }}

  

转载于:https://www.cnblogs.com/alexcai/p/3515791.html

你可能感兴趣的文章
070102_赌博设计:概率的基本概念,古典概型
查看>>
IT人生的价值和意义 感觉真的有了
查看>>
Linux命令之df
查看>>
JS DOM对象
查看>>
python正则表达式
查看>>
OGR – Merging Multiple SHP files
查看>>
创业公司该不该被收购?(转)
查看>>
sqlserver 行转列、列转行[转]
查看>>
【IScroll深入学习】解决IScroll疑难杂症
查看>>
python 数据类型
查看>>
108-PHP类成员protected和private成员属性不能被查看数值
查看>>
ajax post data 获取不到数据,注意contentType
查看>>
css控制height充满浏览器视口
查看>>
Linux 系统目录结构
查看>>
查看CPU数量和核心数
查看>>
Android异步加载网络图片
查看>>
python学习之 - XML
查看>>
css问题小计
查看>>
Laravel学习笔记(三)数据库 数据库迁移
查看>>
ORACLE查看并修改最大连接数
查看>>