【Android】Fragment真正意义上的onResume和onPause
2015-11-07 12:11
441 查看
前言
Fragment虽然有onResume和onPause的,但是这两个方法是Activity的方法,调用时机也是与Activity相同,和ViewPager搭配使用这个方法就很鸡肋了,根本不是你想要的效果,这里介绍一种方法。
声明
欢迎转载,但请保留文章原始出处:)
博客园:http://www.cnblogs.com
农民伯伯: http://over140.cnblogs.com
正文
继承setUserVisibleHint方法:
@Override
public void setUserVisibleHint(boolean isVisibleToUser) {
super.setUserVisibleHint(isVisibleToUser);
if (isVisibleToUser) {
//相当于Fragment的onResume
} else {
//相当于Fragment的onPause
}
}
代码说明:
通过阅读ViewPager和PageAdapter相关的代码,切换Fragment实际上就是通过设置setUserVisibleHint和setMenuVisibility来实现的,调用这个方法时并不会释放掉Fragment(即不会执行onDestoryView)。
Fragment虽然有onResume和onPause的,但是这两个方法是Activity的方法,调用时机也是与Activity相同,和ViewPager搭配使用这个方法就很鸡肋了,根本不是你想要的效果,这里介绍一种方法。
声明
欢迎转载,但请保留文章原始出处:)
博客园:http://www.cnblogs.com
农民伯伯: http://over140.cnblogs.com
正文
继承setUserVisibleHint方法:
@Override
public void setUserVisibleHint(boolean isVisibleToUser) {
super.setUserVisibleHint(isVisibleToUser);
if (isVisibleToUser) {
//相当于Fragment的onResume
} else {
//相当于Fragment的onPause
}
}
代码说明:
通过阅读ViewPager和PageAdapter相关的代码,切换Fragment实际上就是通过设置setUserVisibleHint和setMenuVisibility来实现的,调用这个方法时并不会释放掉Fragment(即不会执行onDestoryView)。
相关文章推荐
- Android内的生命周期整理
- Android数据库(八)之使用LitePal聚合函数
- Eclipse Android项目 为控件添加了Id,但是在Java代码中提示xxx cannot be resolved or is not a field
- Android数据库(七)之LitePal查询艺术
- Android Studio创建项目
- Android数据库(六)之LitePal的修改和删除
- Android数据库(五)之LitePal的存储操作
- Android数据库(四)之使用LitePal建立关联表
- Android的Style的使用
- Android数据库(三)之使用LitePal升级表
- Android之自定义标题
- Android数据库(二)之创建表和LitePal的基本用法
- Android数据库(一)之SQLite命令
- Android应用性能优化实践
- 【Android实战】播放assets或者raw文件夹下的视频文件
- AndroidSweetSheet
- 这里列出Android Studio的所有版本,最新的是1.5 Beta。
- Android Activity 的二种方式切换动画
- android 学习路线
- Android - Notification通知详解