1

我正在像这样添加Fragment一个Activity

getSupportFragmentManager()
            .beginTransaction()              
            .add(R.id.frame_container, fragment)
            .setTransition(FragmentTransaction.TRANSIT_FRAGMENT_OPEN)
            .addToBackStack(fragment.getClass().getName())
            .commit();

但是当我想找到Fragmentusing aFragmentManager时,它返回 null:

 Fragment oldFragment = (Fragment) getSupportFragmentManager().findFragmentByTag(fragment.getClass().getName());
4

1 回答 1

6

你试图通过标签找到它,但你没有给它任何标签

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

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

然后你可以得到它

Fragment oldFragment = (Fragment) getSupportFragmentManager().findFragmentByTag("tagABC");

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

于 2015-08-31T06:49:05.853 回答