从BackStack恢复片段的事件

时间:2014-10-01 08:18:51

标签: android android-fragments back-stack

我使用代码:

从SpeakerFragment附加SessionFragment
FragmentManager 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()没有调用。

1 个答案:

答案 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()作为片段参数传递。