如何获取导航控制器中当前显示的片段

Van*_*saF 5 java android android-fragments android-activity

我使用单个活动并将多个片段嵌入其中。现在我想知道在单个活动类中,当前正在显示哪个片段。我怎样才能做到这一点?我从这里查看了解决方案How to Know if a Fragment is Visible?

MyFragmentClass test = (MyFragmentClass) getSupportFragmentManager().findFragmentByTag("testID");
if (test != null && test.isVisible()) {
     //DO STUFF
}
else {
    //Whatever
}
Run Code Online (Sandbox Code Playgroud)

但我不知道你的参数是什么"testID"此外,我尝试从获取当前片段对象中实现解决方案

Fragment currentFragment = getActivity().getFragmentManager().findFragmentById(R.id.fragment_container);
Run Code Online (Sandbox Code Playgroud)

但在这里我收到错误消息:“无法解析符号‘fragment_container’”

有谁知道如何获取使用单个活动和多个片段方法时显示的当前片段的名称?

Sam*_*wal 2

我知道这里已经有 2 个答案,但还有 1 个解决方案,所以我将其写在这里。这是代码:

NavController navController = Navigation.findNavController(this, R.id.fragment);
        int id=navController.getCurrentDestination().getId();
      if(id==R.id.startGameFragment ){ // change the fragment id
          selectedPosition(0);

      }else if(id==R.id.gameFragment ){ // change the fragment id
          selectedPosition(1);

      }else if(id==R.id.endGameFragment ){ // change the fragment id
          selectedPosition(2);

      }
Run Code Online (Sandbox Code Playgroud)