我根据本教程实现了我的布局:http ://android-developers.blogspot.hu/2011/02/android-30-fragments-api.html
区别在于:
- 根据左侧列表中的选择,我有不同的片段要显示
- “细节片段”(右边的那些)有不同的选项菜单
我的问题是,如果我已经从左侧选择了一些东西,然后将手机旋转到纵向,最后一个选项菜单仍然存在并且可见。
我认为问题来自于在方向更改后重新创建的最后一个活动“详细信息”片段。为了测试它,我创建了这两种方法:
@Override
public void onStart() {
super.onStart();
setHasOptionsMenu(true);
}
@Override
public void onStop() {
super.onStop();
setHasOptionsMenu(false);
}
我正在展示这样的正确片段:
case R.id.prefs_medicines:
if (mDualPane) {
// Check what fragment is shown, replace if needed.
View prefsFrame = getActivity().findViewById(R.id.preferences);
if (prefsFrame != null) {
// Make new fragment to show this selection.
MedicineListF prefF = new MedicineListF();
// Execute a transaction, replacing any existing
// fragment with this one inside the frame.
FragmentTransaction ft = getFragmentManager().beginTransaction();
ft.replace(R.id.preferences, prefF);
ft.setTransition(FragmentTransaction.TRANSIT_FRAGMENT_FADE);
ft.commit();
}
} else {
// Otherwise we need to launch a new activity to display
// the dialog fragment with selected text.
Intent intent = new Intent();
intent.setClass(getActivity(), MedicinePrefsActivity.class);
startActivity(intent);
}
break;
在我的“详细信息”片段之一中。当我调试它时,在旋转后调用了 onstart。
图片中的问题:
1:横向模式没关系 横向模式 http://img834.imageshack.us/img834/8918/error1d.png
2:纵向:不需要选项菜单 纵向模式 http://img860.imageshack.us/img860/8636/error2r.png
如何摆脱纵向模式下的选项菜单?