onCreateOptionsMenu未在片段中触发

时间:2015-06-14 12:51:57

标签: android fragment eventtrigger oncreateoptionsmenu

我的一个片段遇到了一个问题,它与我的其他片段不同,它们根本不会触发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的标准导航而不是制表符。有什么想法吗?

感谢收看,

问候。

0 个答案:

没有答案