Android中ViewPgae中的Fragment如何确认当前页面可见的问题
2015-04-12 11:04
381 查看
由于在ViewPage中PageAdapter来管理所有的Fragment。在加载一个Fragment的时候,会自动缓存左右几个(默认是一个)页面,此时也会调用到正常的生命周期函数,onCreate,onCrateView,onResume.可是这样就干扰了我们统计页面打开次数。
例如:一个ViewPager中存在三个页面的时候,当默认是第一个页面,并且被打开。那么在我们的后台就会收集到用户打开两个页面的信息。这个对我们的统计就是一个很大的干扰。所以就不能再将统计代码放在onResume中,要放在一个其他的函数内,但问题的关键是如何确认当前的Fragment可见?这样我才能把统计函数移植过去。同时Fragment虽然有onResume和onPause的,但是这两个方法是Activity的方法,调用时机也是与Activity相同,和ViewPager搭配使用这个方法就很鸡肋了,根本不是你想要的效果,这里介绍一种方法。
在问这个问题的时候把焦点都放在生命周期的触发上了。发现Fragment下专门有一个setUserVisibleHint函数来处理这个事情:
[java] view
plaincopy
@Override
public void setUserVisibleHint(boolean isVisibleToUser) {
super.setUserVisibleHint(isVisibleToUser);
if (isVisibleToUser) {
//相当于Fragment的onResume
} else {
//相当于Fragment的onPause
}
}
这样我把统计代码放置在当isVisibleToUser是可见的时候判断分支中,应该可以解决我的问题了。
转自:http://blog.csdn.net/jiangwei0910410003/article/details/17199219
例如:一个ViewPager中存在三个页面的时候,当默认是第一个页面,并且被打开。那么在我们的后台就会收集到用户打开两个页面的信息。这个对我们的统计就是一个很大的干扰。所以就不能再将统计代码放在onResume中,要放在一个其他的函数内,但问题的关键是如何确认当前的Fragment可见?这样我才能把统计函数移植过去。同时Fragment虽然有onResume和onPause的,但是这两个方法是Activity的方法,调用时机也是与Activity相同,和ViewPager搭配使用这个方法就很鸡肋了,根本不是你想要的效果,这里介绍一种方法。
在问这个问题的时候把焦点都放在生命周期的触发上了。发现Fragment下专门有一个setUserVisibleHint函数来处理这个事情:
[java] view
plaincopy
@Override
public void setUserVisibleHint(boolean isVisibleToUser) {
super.setUserVisibleHint(isVisibleToUser);
if (isVisibleToUser) {
//相当于Fragment的onResume
} else {
//相当于Fragment的onPause
}
}
这样我把统计代码放置在当isVisibleToUser是可见的时候判断分支中,应该可以解决我的问题了。
转自:http://blog.csdn.net/jiangwei0910410003/article/details/17199219
相关文章推荐
- Android中ViewPgae中的Fragment如何确认当前页面可见的问题
- Android中ViewPgae中的Fragment如何确认当前页面可见的问题
- Android中ViewPgae中的Fragment如何确认当前页面可见的问题
- Android中ViewPgae中的Fragment如何确认当前页面可见的问题
- Android中ViewPgae中的Fragment如何确认当前页面可见的问题
- Android中ViewPgae中的Fragment如何确认当前页面可见的问题
- Android中ViewPgae中的Fragment如何确认当前页面可见的问题
- Android开发中如何解决Fragment +Viewpager滑动页面重复加载的问题
- android webview 加载重定向页面时点击无法回退,导致重复加载当前页面问题的解决方案
- android 中webview退出当前页面仍然继续播放的问题
- android 布局 使用 viewPager 时,如何解决 和 子页面 长按滑动 冲突问题
- Android ViewPager 如何判断当前页面是从前一页还是后一页滑动过来
- Android 如何快速定位当前页面是哪个Activity or Fragment
- ViewPager如何获取当前的子view( 解决getChildAt(position) 为null的问题)(android__1332)
- android,进入页面textview默认获得焦点问题,如何取消焦点
- android viewpager + fragment 选中当前fragment再触发一些事情的问题
- Android ViewPager 如何判断当前页面是从前一页还是后一页滑动过来
- Android 利用ViewPager、Fragment、PagerTabStrip实现多页面滑动效果
- 【Android 应用开发】Android中使用ViewPager制作广告栏效果 - 解决ViewPager占满全屏页面适配问题
- Android 利用ViewPager、Fragment、PagerTabStrip实现多页面滑动效果