private boolean isViewPrepared = false; //是否初始化完成
public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
rootView = inflater.inflate(R.layout.fragment_jy_db, container, false);
if (!isViewPrepared && getUserVisibleHint()) {
initData();
}
isViewPrepared = true;
return rootView;
}
@Override
public void setUserVisibleHint(boolean isVisibleToUser) {
super.setUserVisibleHint(isVisibleToUser);
//此处不能用isVisibleToUser进行判断,因为setUserVisibleHint会执行多次,而getUserVisibleHint才是判断真正是否可见的
if (getUserVisibleHint() && isViewPrepared) {
Log.e(TAG, "setUserVisibleHint 显示");
new Thread(new Runnable() {
@Override
public void run() {
try {
Thread.sleep(500);
} catch (InterruptedException e) {
e.printStackTrace();
}
//切回到主线程
getActivity().runOnUiThread(new Runnable() {
@Override
public void run() {
initData();
}
});
}
}).start();
}
}
viewpager点击切换 会出现卡顿
在 setUserVisibleHint 里面进行判断
延时进行网络请求获取数据