Android. Determine the fragment in the container
-
How do identify the fragment at this point in the container?
If you do this:
if (fragmentmanager.findFragmentByTag(fragment.TAG) != null) {}
The answer will always be the truth if we once added this fragment into the glass, even if the fragment has already been replaced by another. And there will be the truth until we challenge this fragment.
-
You can use your own fragment managers like:
class SimpleFragmentManager { private FragmentManager fragmentManager; private Stack<Fragment> fragmentStack;
public SimpleFragmentManager(Activity activity) { fragmentManager=activity.getSupportFragmentManager(); fragmentStack=new Stack<>(); } public void push(int fragmentContainer, Fragment fragment, String id) { fragmentManager.beginTransaction().replace(fragmentContainer, fragment).addToBackStack(id).commit(); fragmentStack.push(fragment); } public void reset(int fragmentContainer, Fragment fragment) { fragmentManager.beginTransaction().replace(fragmentContainer, fragment).commit(); fragmentStack.empty(); fragmentStack.push(fragment); } public Fragment pop() { fragmentManager.popBackStack(); return fragmentStack.pop(); } public Fragment peek() { return fragmentStack.peek(); } public int size() { return fragmentManager.getBackStackEntryCount(); } public void addOnBackStackChangedListener(FragmentManager.OnBackStackChangedListener listener) { fragmentManager.addOnBackStackChangedListener(listener); } }
Then the current fragments are always available.
peek()