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