protected virtual Fragment FindFragmentInChildren(string fragmentName, FragmentManager fragManager) { if (fragManager == null) { return(null); } if (fragManager.BackStackEntryCount == 0) { return(null); } for (int i = 0; i < fragManager.BackStackEntryCount; i++) { var parentFrag = fragManager.FindFragmentById(fragManager.GetBackStackEntryAt(i).Id); //let's try again finding it var frag = parentFrag?.ChildFragmentManager?.FindFragmentByTag(fragmentName); if (frag == null) { //reloop for other fragments frag = FindFragmentInChildren(fragmentName, parentFrag?.ChildFragmentManager); } //if we found the frag lets return it! if (frag != null) { return(frag); } } return(null); }