android——Fragment实现懒加载
来源:互联网 发布:python import路径 编辑:程序博客网 时间:2024/06/05 11:33
效果:
Activity中ViewPager嵌套多个Fragment.当切换到这个这个Fragment时才进行初始化,减少Activity初始化操作
方法:
setUserVisibleHint方法是判断Fragment中的UI控件是否可见的。可以自行实现,在UI控件可见时进行加载的操作。注:setUserVisibleHint是在onCreateView之前调用的。所以,在该方法中,必须先判断是否find some view,在做具体操作,防止空指针。
模板:
public abstract class LazyFragment extends Fragment { protected boolean isVisible; @Override public void setUserVisibleHint(boolean isVisibleToUser) { super.setUserVisibleHint(isVisibleToUser); if(getUserVisibleHint()) { isVisible = true; onVisible(); } else { isVisible = false; onInvisible(); } } protected void onVisible(){ lazyLoad(); } protected abstract void lazyLoad(); protected void onInvisible(){}}
public class OpenResultFragment extends LazyFragment{ // 标志位,标志已经初始化完成。 private boolean isPrepared; @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { Log.d(LOG_TAG, "onCreateView"); View view = inflater.inflate(R.layout.fragment_open_result, container, false); //XXX初始化view的各控件 isPrepared = true; lazyLoad(); return view; } @Override protected void lazyLoad() { if(!isPrepared || !isVisible) { return; } //填充各控件的数据 }}
附:Fragment的其他生命周期
onAttach()
当fragment和activity被关联时调用。
onCreateView()
当创建fragment的UI被初始化时调用。
onActivityCreated()
当activity的onCreate()方法返回时调用。
onDestroyView()
当fragment的UI被移除的时候调用。
onDetach()
当fragment和activity去关联时调用。
0 0
- android——Fragment实现懒加载
- Android Fragment实现懒加载
- Android Fragment 实现懒加载
- Android 实现fragment懒加载
- Android Fragment懒加载简单实现
- Android之Viewpager+Fragment实现懒加载
- Android之Viewpager+Fragment实现懒加载
- Android之ViewPager+Fragment实现懒加载
- Android Fragment懒加载简单实现
- Fragment实现懒加载
- Fragment实现懒加载
- Fragment实现懒加载
- Android Fragment 懒加载
- Android中的Fragment——01(Fragment的静态加载)
- Android中的Fragment——02(Fragment的动态加载)
- Android--Fragment的setUserVisibleHint方法实现懒加载
- Android Fragment的setUserVisibleHint方法实现懒加载
- Android之RadioButton配合Fragment实现懒加载
- 11-19 Linux
- 容量规划和Region配置
- C# 设计模式----抽象工厂模式
- java源码分析-优先队列
- Feng是LSCUBE维护的开源流媒体服务器,兼容IETF标准,实现了RTSP、RTP/RTCP
- android——Fragment实现懒加载
- hdu 2199 Can you solve this equation?
- windows下apache+php+mysql 环境配置方法
- OC之继承、初始化、便利构造器
- object references an unsaved transient instance
- HTTP403(禁止访问)---WampServer 127.0.0.1 禁止访问
- webview 调用js 4.2之前与之后的区别
- Thread、AsycTask、IntentService的比较
- 初步探究ES6之解构