2

I have MainActivity and inside this activity i have four fragments. The fragment name are A,B,C,D.

Fragment currentVisibleFragment = getSupportFragmentManager().findFragmentByTag(null);

using this above line i am trying to get the current visible fragment but i cant get the current visible fragment.

Amit Basliyal
  • 840
  • 1
  • 10
  • 28
Saravanan Selvam
  • 163
  • 1
  • 5
  • 17

4 Answers4

18
private Fragment getVisibleFragment() {
        FragmentManager fragmentManager = MainActivity.this.getSupportFragmentManager();
        List<Fragment> fragments = fragmentManager.getFragments();
        for (Fragment fragment : fragments) {
            if (fragment != null && fragment.isVisible())
                return fragment;
        }
        return null;
}

Usage

if (getVisibleFragment() instanceof HomeScreen) {
  // Logic here...
}

Were MainActivity is the holder and HomeScreen is your one of the fragment.

Anoop M Maddasseri
  • 10,213
  • 3
  • 52
  • 73
13
Fragment getCurrentFragment()
{
    Fragment currentFragment = getSupportFragmentManager()
            .findFragmentById(R.id.content_frame);
    return currentFragment;
}

calling function like this

Fragment visibleFragment=getCurrentFragment();

calling this function you can get current visible fragment.if Any confusion then feel for free to ask thankx :)

1
android.support.v4.app.Fragment getCurrentFragment()
{
    Fragment currentFragment = getActivity().getSupportFragmentManager()
            .findFragmentById(R.id.frameLayout);
    return currentFragment;
}
  • 1
    Although this code might (or might not) solve the problem, a good answer should always explain what the code does and how it helps. – BDL Feb 27 '19 at 14:55
0
public boolean checkFragmentAvailableOrNot1(String fragmentName) 
{
   Fragment fragment=getSupportFragmentManager().findFragmentByTag(fragmentName);
    if (fragment instanceof FragMercado && fragment.isVisible()) 
    {
        return true;
    }
    return false;
}
Sasikumar Murugesan
  • 4,412
  • 10
  • 51
  • 74
akhil batlawala
  • 1,066
  • 1
  • 10
  • 30