本文主要是介绍您真的懂fragment的onResume,setUserVisibleHint,onHiddenChanged,isVisible方法吗!,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
写在开头
最近公司的一个项目需要的Fragment可见的时候处理一些逻辑,UI结构并非Tablayout+viewPager+Fragment结果,而是FragmentTabHost+Fragment的结构,所以有了一些坑,不知道你是否遇到过,从源码层面看一下这些问题,写出来希望大家判断好与坏。
思考:
公司之前代码是在onResume方法中写逻辑,后来想了下,这明显是不对的,大家都知道Fragment的onResume是依赖于附属Activity的onResume方法的,当你从fragment的跳转到另一个Activity再次返回的时候,fragment附属的Activity下的所有Fragment都会走onResume方法,我们项目中onResume方法都是一些必须的网络请求和一些与逻辑无关的操作,所以并未发现错误,在我动态适配状态的过程发现了这个问题并研究了一下,下面来看这些方法!
采坑一
setUserVisibleHint方法,先看一下源码:
public void setUserVisibleHint(boolean isVisibleToUser) {if (!mUserVisibleHint && isVisibleToUser && mState < STARTED&& mFragmentManager != null && isAdded()) {mFragmentManager.performPendingDeferredStart(this);}mUserVisibleHint = isVisibleToUser;mDeferStart = mState < STARTED && !isVisibleToUser;}
我们可以看到,他只是Fragment源
这篇关于您真的懂fragment的onResume,setUserVisibleHint,onHiddenChanged,isVisible方法吗!的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!