如何在片段交易中添加标签?

Yur*_*kiy 1 android android-fragments fragment-backstack

FragmentActivity像这样向我添加一个:

getSupportFragmentManager()
            .beginTransaction()              
            .add(R.id.frame_container, fragment)
            .setTransition(FragmentTransaction.TRANSIT_FRAGMENT_OPEN)
            .addToBackStack(fragment.getClass().getName())
            .commit();
Run Code Online (Sandbox Code Playgroud)

但是当我想找到Fragment使用时,FragmentManager它返回null:

 Fragment oldFragment = (Fragment) getSupportFragmentManager().findFragmentByTag(fragment.getClass().getName());
Run Code Online (Sandbox Code Playgroud)

Der*_*ung 5

您尝试通过标签找到它,但是您没有给它任何标签

如果您想给它一个标签,就这样做

getSupportFragmentManager()
        .beginTransaction()              
        .add(R.id.frame_container, fragment, "tagABC")
        .setTransition(FragmentTransaction.TRANSIT_FRAGMENT_OPEN)
        .addToBackStack(fragment.getClass().getName())
        .commit();
Run Code Online (Sandbox Code Playgroud)

然后你可以得到它

Fragment oldFragment = (Fragment) getSupportFragmentManager().findFragmentByTag("tagABC");
Run Code Online (Sandbox Code Playgroud)

顺便说一句,您应该更正您的问题标题,该问题与后退无关。