android jetpack Navigation 获取当前激活的fragment

方法一

  Fragment mMainNavFragment = getSupportFragmentManager().findFragmentById(R.id.main_nav_fragment);
  //获取指定的fragment
  Fragment fragment = mMainNavFragment.getChildFragmentManager().getPrimaryNavigationFragment();
        if (fragment instanceof MediaDetailsFragment) {
            return (MediaDetailsFragment) fragment;
        }

方法二

	Fragment mMainNavFragment = getSupportFragmentManager().findFragmentById(R.id.main_nav_fragment);
	NavController navController = NavHostFragment.findNavController(mMainNavFragment);
 	   int currentFragmentId = navController.getCurrentDestination().getId();
 	   if (currentFragmentId == R.id.fragment_media_details) {
  	      for (Fragment fragment : mMainNavFragment.getChildFragmentManager().getFragments()) {
    	        if (fragment instanceof MediaDetailsFragment) {
        	        return (MediaDetailsFragment) fragment;
           }
        }
    }	
Logo

Agent 垂直技术社区,欢迎活跃、内容共建。

更多推荐