如何为片段交易添加标签?
How to add tag to Fragment Transaction?
我正在向我的 Activity
添加一个 Fragment
,如下所示:
getSupportFragmentManager()
.beginTransaction()
.add(R.id.frame_container, fragment)
.setTransition(FragmentTransaction.TRANSIT_FRAGMENT_OPEN)
.addToBackStack(fragment.getClass().getName())
.commit();
但是当我想使用 FragmentManager
查找 Fragment
时,它返回 null:
Fragment oldFragment = (Fragment) getSupportFragmentManager().findFragmentByTag(fragment.getClass().getName());
你试图通过标签找到它,但你没有给它任何标签
如果你想给它一个标签,这样做
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无关。
我正在向我的 Activity
添加一个 Fragment
,如下所示:
getSupportFragmentManager()
.beginTransaction()
.add(R.id.frame_container, fragment)
.setTransition(FragmentTransaction.TRANSIT_FRAGMENT_OPEN)
.addToBackStack(fragment.getClass().getName())
.commit();
但是当我想使用 FragmentManager
查找 Fragment
时,它返回 null:
Fragment oldFragment = (Fragment) getSupportFragmentManager().findFragmentByTag(fragment.getClass().getName());
你试图通过标签找到它,但你没有给它任何标签
如果你想给它一个标签,这样做
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无关。