我使用代码:
从SpeakerFragment附加SessionFragmentFragmentManager fragmentManager = getActivity().getSupportFragmentManager();
fragmentManager.beginTransaction()
.add(R.id.container, new SessionFragment(session))
.addToBackStack("session")
.commit();
在SessionFragment中(在OnAttach()中)我将ActionBar标题更改为会话标题。
从SessionFragment返回时,我想将ActionBar标题更改为Speaker name。我怎么能这样做?
OnStart(),OnResume(),onAttach()没有调用。
答案 0 :(得分:0)
您刚刚在容器中添加了一个片段而没有删除或移除前一个片段,请尝试替换并在OnActivityCreated()
中设置ActionBar标题
FragmentManager fragmentManager = getActivity().getSupportFragmentManager();
fragmentManager.beginTransaction()
.replace(R.id.container, new SessionFragment(session))
.addToBackStack("session")
.commit();
另一个注意事项,你不应该使用一个非空的Fragments构造函数,因为框架只会在恢复一个片段时调用空构造函数,例如:在空转,背景等之后
相反,session的类应该实现parcelable,并且应该使用fragment.setArguments()
作为片段参数传递。