他のフラグメントとは異なり、onCreateOptionsMenu() をまったくトリガーしないフラグメントの 1 つで問題が発生しました。例外も特定のトレースもありません。 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 からの標準ナビゲーションを使用します。何か案は ?
見てくれてありがとう、
よろしく。