0

我的一个片段遇到了一个问题,与我的其他片段不同,它根本不会触发 onCreateOptionsMenu()。没有任何例外或任何特定的跟踪,我使用 setHasOptionsMenu(true) 方法。

package fr.test.test.fragment;

import android.app.ActionBar;
import android.support.v4.app.Fragment;
import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.Menu;
import android.view.MenuInflater;
import android.view.View;
import android.view.ViewGroup;

import fr.test.test.MainActivity;
import fr.test.test.listener.FragmentTabListener;
import fr.test.test.R;

public class TestFragment extends Fragment {

    private ActionBar.Tab Tab1, Tab2;
    private Fragment fragmentTab1;
    private Fragment fragmentTab2;
    private ActionBar actionBar;

    public TestFragment() {

        fragmentTab1 = new Fragment1();
        fragmentTab2 = new Fragment2();
    }

    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {

        View rootView = inflater.inflate(R.layout.fragment_messages, container, false);
        setHasOptionsMenu(true);

        actionBar = getActivity().getActionBar();
        actionBar.setNavigationMode(ActionBar.NAVIGATION_MODE_TABS);

        Tab1 = actionBar.newTab().setText(R.string.title_fragment1);
        Tab2 = actionBar.newTab().setText(R.string.title_fragment2);

        Tab1.setTabListener(new FragmentTabListener(getActivity(), fragmentTab1));
        Tab2.setTabListener(new FragmentTabListener(getActivity(), fragmentTab2));

        actionBar.removeAllTabs();
        actionBar.addTab(Tab1);
        actionBar.addTab(Tab2);

        return rootView;
    }

    @Override
    public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) {
        System.out.println("onCreateOptionsMenu TRIGGER ME PLZ :( ");
        inflater.inflate(R.menu.global, menu);
    }
}

问题不是来自我的菜单,因为我的其他片段触发了这个事件,这就是为什么我不明白这个案例的原因。我使用完全相同的逻辑,但使用来自 ActionBar 而不是选项卡的标准导航。有任何想法吗 ?

谢谢收看,

问候。

4

0 回答 0