Skip to content

Instantly share code, notes, and snippets.

@jemshit
Created December 1, 2016 12:21
Show Gist options
  • Star 5 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save jemshit/749f4c3ae7156a387fda0a252028e219 to your computer and use it in GitHub Desktop.
Save jemshit/749f4c3ae7156a387fda0a252028e219 to your computer and use it in GitHub Desktop.
Do something when Fragment is visible
public class BaseFragment extends Fragment {
private boolean fragmentResume=false;
private boolean fragmentVisible=false;
private boolean fragmentOnCreated=false;
@Override
public void onViewCreated(View view, @Nullable Bundle savedInstanceState) {
super.onViewCreated(view, savedInstanceState);
if (!fragmentResume && fragmentVisible){ //only when first time fragment is created
doWorkOnVisible();
}
}
@Override
public void setUserVisibleHint(boolean visible){
super.setUserVisibleHint(visible);
if (visible && isResumed()){ // only at fragment screen is resumed
fragmentResume=true;
fragmentVisible=false;
fragmentOnCreated=true;
doWorkOnVisible();
}else if (visible){ // only at fragment onCreated
fragmentResume=false;
fragmentVisible=true;
fragmentOnCreated=true;
}
else if(!visible && fragmentOnCreated){// only when you go out of fragment screen
fragmentVisible=false;
fragmentResume=false;
}
}
// Override this in derived Fragment classes
protected void doWorkOnVisible(){
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment