ViewPager+Fragment 延迟加载
2016-05-17 17:02
190 查看
代码很简单,自行观看。
package com.guidepage.hui.guidepage;
import android.os.Bundle;
import android.os.Handler;
import android.support.v4.app.Fragment;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
public abstract class GuideBaseFragment extends Fragment {
protected boolean isPrepare = false;
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
View view = inflater.inflate(layoutId(), container, false);
isPrepare = true;
initView(view);
return view;
}
@Override
public void onResume() {
super.onResume();
if (getUserVisibleHint()) {
load();
}
}
protected abstract int layoutId();
@Override
public void setUserVisibleHint(boolean isVisibleToUser) {
super.setUserVisibleHint(isVisibleToUser);
if (isVisibleToUser) {
load();
}
}
@Override
public void onViewCreated(View view, Bundle savedInstanceState) {
super.onViewCreated(view, savedInstanceState);
}
private void load() {
if (!isPrepare) {
return;
}
isPrepare = !isPrepare;
new Handler().postDelayed(new Runnable() {
@Override
public void run() {
loadAnimation();
}
}, 300);
}
protected abstract void loadAnimation();
protected abstract void initView(View view);
}
package com.guidepage.hui.guidepage;
import android.os.Bundle;
import android.os.Handler;
import android.support.v4.app.Fragment;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
public abstract class GuideBaseFragment extends Fragment {
protected boolean isPrepare = false;
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
View view = inflater.inflate(layoutId(), container, false);
isPrepare = true;
initView(view);
return view;
}
@Override
public void onResume() {
super.onResume();
if (getUserVisibleHint()) {
load();
}
}
protected abstract int layoutId();
@Override
public void setUserVisibleHint(boolean isVisibleToUser) {
super.setUserVisibleHint(isVisibleToUser);
if (isVisibleToUser) {
load();
}
}
@Override
public void onViewCreated(View view, Bundle savedInstanceState) {
super.onViewCreated(view, savedInstanceState);
}
private void load() {
if (!isPrepare) {
return;
}
isPrepare = !isPrepare;
new Handler().postDelayed(new Runnable() {
@Override
public void run() {
loadAnimation();
}
}, 300);
}
protected abstract void loadAnimation();
protected abstract void initView(View view);
}
相关文章推荐
- android中的context是起什么作用?
- ajax demo
- POJ 3254 Corn Fields(状态压缩DP)
- Android应用中clearFocus方法调用无效的问题解决
- equals()方法的重写
- 索引介绍和使用
- 算法复杂度
- systemd的使用(centos7之后使用systemd代替init)
- 3D坐标系、矩阵变换、视景体与裁剪
- 小知识点_(内容管理系统总结5)
- NYOJ - 擅长排列的小明
- main中的运行时(runtime)
- 批处理
- 关于组播TIdIPMCastServer的试验
- myeclipse工程当中的.classpath 和.project文件什么作用?
- JS——图片预览功能
- 服务器的情况
- PHP的json_encode中文被转码的问题
- IOS 使用QLPreviewController浏览PDF WORD等文件
- 根据字符串获取属性值