How do I get the currently displayed fragment?

前端 未结 30 2291
青春惊慌失措
青春惊慌失措 2020-11-22 11:21

I am playing with fragments in Android.

I know I can change a fragment by using the following code:

FragmentManager fragMgr = getSupportFragmentManag         


        
30条回答
  •  再見小時候
    2020-11-22 11:46

    Every time when you show fragment you must put it tag into backstack:

    FragmentTransaction ft = getSupportFragmentManager().beginTransaction();
    ft.setTransition(FragmentTransaction.TRANSIT_ENTER_MASK);       
    ft.add(R.id.primaryLayout, fragment, tag);
    ft.addToBackStack(tag);
    ft.commit();        
    

    And then when you need to get current fragment you may use this method:

    public BaseFragment getActiveFragment() {
        if (getSupportFragmentManager().getBackStackEntryCount() == 0) {
            return null;
        }
        String tag = getSupportFragmentManager().getBackStackEntryAt(getSupportFragmentManager().getBackStackEntryCount() - 1).getName();
        return (BaseFragment) getSupportFragmentManager().findFragmentByTag(tag);
    }
    

提交回复
热议问题