# ViewPager_Fragment **Repository Path**: zyj1609/ViewPager_Fragment ## Basic Information - **Project Name**: ViewPager_Fragment - **Description**: No description available - **Primary Language**: Android - **License**: Apache-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 1 - **Forks**: 0 - **Created**: 2016-01-14 - **Last Updated**: 2020-12-19 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README #说明 1、在ViewPager + Fragment 中, 在ViewPager滑动的过程中 为了防止 Fragment重复加载。 需要设置ViewPager预加载个数。 比如:ViewPager中总共需要加载 3个Fragment,则需要 ``` //设置缓存个数 viewPager.setOffscreenPageLimit( 2 ); ``` 2、BaseActivity ``` package com.example.yiba8.myapplication; import android.os.Bundle; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import com.example.yiba8.util.ServerResources; import android.app.Fragment ; /** * Created by ${zyj} on 2016/1/14. */ public abstract class BaseFragment extends Fragment { private View fragmentRootView ; //Fragment当前状态是否可见 protected boolean isVisible; private int lazyLoadNumber = 0 ; //接口管理 public ServerResources serverResources ; @Override public void setUserVisibleHint(boolean isVisibleToUser) { super.setUserVisibleHint(isVisibleToUser); if (getUserVisibleHint()) { //可见 isVisible = true; onVisible(); } else { //不可见 isVisible = false; onInvisible(); } } @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); //这里可以做一些 公共资源初始化的工作 serverResources = new ServerResources() ; } @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { fragmentRootView = inflaterView(inflater, container, savedInstanceState); initView(fragmentRootView) ; initDataFromThread(); //耗时操作 return fragmentRootView ; } /** * 设置布局 * @param inflater * @param container * @param bundle * @return */ public abstract View inflaterView(LayoutInflater inflater, ViewGroup container, Bundle bundle); /** * 初始化控件 * @param fragmentRootView */ public abstract void initView( View fragmentRootView ) ; /** * 耗时操作 */ public abstract void initDataFromThread(); /** * 可见 */ protected void onVisible() { lazyLoadNumber ++ ; lazyLoad( lazyLoadNumber ); } /** * 不可见 */ protected void onInvisible() { } /** * 延迟加载 * 子类必须重写此方法 */ protected abstract void lazyLoad( int number ); } ```