网上常用三种Fragment方法
转载:Android 每次进入Fragment都进行刷新
第一种,使用onCreateAnimation方法:
private boolean isGetData=false;
@Override
public Animation onCreateAnimation(int transit, boolean enter, int nextAnim) {
//进入到当前Fragment
if (enter&&isGetData){
isGetData=true;
//进行刷新操作
}else {
isGetData=false;
}
return super.onCreateAnimation(transit, enter, nextAnim);
}
@Override
public void onPause() {
super.onPause();
isGetData=false;
}
//加上这个方法可能会执行两次刷新操作,可以去掉试试
@Override
public void onResume() {
if (isGetData){
//进行刷新操作
isGetData=true;
}
super.onResume();
}
第二种方法:使用onHiddenChanged方法:
@Override
public void onHiddenChanged(boolean hidden) {
if (hidden){
//进行刷新操作
}
super.onHiddenChanged(hidden);
}
Fragment里面的onResume和onPause,但这两个方法是Activity的,调用时机也是Activity的。 真正的Fragment的onResume和onPause方法,其实是setUserVisibleHint方法
/*
* 左右切换Fragment时刷新
* */
@Override
public void setUserVisibleHint(boolean isVisibleToUser) {
if (isVisibleToUser) {
refreshData();
ToastUtil.show("页面已刷新");
}
isFirst = false;
}
以上三种没测试成功 ,
最后解决方案,重写onResume(),解决跳转Activity,返回Fragment页面刷新!
@Override
public void onResume(){
super.onResume();
//获取焦点,界面可见时候执行刷新
if (isVisible){
refreshData();
}
}