Fragment懒加载
来源:互联网 发布:淘宝权id 编辑:程序博客网 时间:2024/06/16 02:28
懒加载意思也就是当需要的时候才会去加载。
一般我们都会在onCreate()或者onCreateView()里去启动一些数据加载操作,比如从本地加载或者从服务器加载。大部分情况下,这样并不会出现什么问题,但是当使用ViewPager + Fragment的时候,问题就来了,这时就应该考虑是否需要实现懒加载了。
ViewPager为了让滑动的时候可以有很好的用户的体验,也就是防止出现卡顿现象,因此它有一个缓存机制。默认情况下,ViewPager会提前创建好当前Fragment左右两旁的两个Fragment,举个例子说也就是如果你当前显示的是编号3的Fragment,那么其实编号2和4的Fragment也已经创建好了,也就是说这3个Fragment都已经执行完 onAttach() -> onResume() 这之间的生命周期函数了。
懒加载,也就是当fragment与用户交互式再进行加载数据,闲话不说,直接上代码。
封装一个类,继承Fragment
public class ViewPagerFragment extends Fragment{ private boolean isCreateView; private boolean isFragmentVisible; protected View view; @Override public void setUserVisibleHint(boolean isVisibleToUser) { // TODO Auto-generated method stub super.setUserVisibleHint(isVisibleToUser); if(view == null){ return; } isCreateView = true; if(isVisibleToUser){ onFragmentVisibleChange(true); isFragmentVisible=true; return; } if(isFragmentVisible){ onFragmentVisibleChange(false); isFragmentVisible=false; } } @Override public void onCreate(Bundle savedInstanceState) { // TODO Auto-generated method stub super.onCreate(savedInstanceState); initVariable(); } @Override public void onViewCreated(View view, Bundle savedInstanceState) { // TODO Auto-generated method stub super.onViewCreated(view, savedInstanceState); if(!isCreateView && getUserVisibleHint()){ onFragmentVisibleChange(true); isFragmentVisible=true; } } private void initVariable(){ isCreateView = false; isFragmentVisible = false; } protected void onFragmentVisibleChange(boolean isVisible) { }}
新建你需要的类继承上面的ViewPagerFragment
@Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { if(view == null){ view=inflater.inflate(R.layout.fragment_transport,container, false); } return view; } @Override protected void onFragmentVisibleChange(boolean isVisible) { super.onFragmentVisibleChange(isVisible); if(isVisible){ //需要加载的数据 } }
0 0
- ViewPager加载Fragment懒加载
- Fragment中的懒加载
- Fragment懒加载
- fragment懒加载
- Fragment的懒加载
- Fragment的懒加载
- Fragment实现懒加载
- Fragment实现懒加载
- Fragment的懒加载
- Fragment懒加载
- ViewPager+Fragment懒加载
- Viewpager Fragment懒加载
- fragment 懒加载
- Fragment懒加载
- Fragment 的懒加载
- Fragment 懒加载实战
- Fragment 的懒加载
- ViewPage Fragment 懒加载
- Window环境React-native环境配置步骤(Android)
- 编程命名规范
- Linux文件权限及用户组详解,必看!
- Android6.0 亮屏灭屏流程(DisplayPowerController、WMS)(一)WMS绘制
- win10+ubuntu14.04双系统硬盘安装教程
- Fragment懒加载
- 强数据类型化
- poj1000
- Android 如何实现一个平滑过渡的ViewPager广告条
- 射手Android ViewPager打造3D画廊
- 微信开发之——报警排查
- Linux 查看进程和删除进程
- SystemUI初始化加载流程
- c++ vector,iterator,map的使用代码示例