- import android.support.v4.app.Fragment;
- public abstract class BaseFragment extends Fragment {
- /** Fragment当前状态是否可见 */
- protected boolean isVisible;
- //setUserVisibleHint adapter中的每个fragment切换的时候都会被调用,如果是切换到当前页,那么isVisibleToUser==true,否则为false
- @Override
- public void setUserVisibleHint(boolean isVisibleToUser) {
- super.setUserVisibleHint(isVisibleToUser);
- if(isVisibleToUser) {
- isVisible = true;
- onVisible();
- } else {
- isVisible = false;
- onInvisible();
- }
- }
- /**
- * 可见
- */
- protected void onVisible() {
- lazyLoad();
- }
- /**
- * 不可见
- */
- protected void onInvisible() {
- }
- /**
- * 延迟加载
- * 子类必须重写此方法
- */
- protected abstract void lazyLoad();
- }
列如:
- public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
- View view = inflater.inflate(R.layout.fragment, container, false);
- contentText = (TextView) view.findViewById(R.id.content);
- progressBar = (ProgressBar) view.findViewById(R.id.progressbar);
- isPrepared = true;
- lazyLoad();
- return view;
- }
- @Override
- protected void lazyLoad() {
- if (!isPrepared || !isVisible || mHasLoadedOnce) {
- return;
- }
- new AsyncTask<Void, Void, Boolean>() {
浙公网安备 33010602011771号