ActionBar 菜单项在嵌套片段中消失
Posted
技术标签:
【中文标题】ActionBar 菜单项在嵌套片段中消失【英文标题】:ActionBar Menu Items disappear in NestedFragments 【发布时间】:2012-12-17 17:11:21 【问题描述】:由于 android 4.2 现在支持 NestedFragment ,并添加它以支持 v13。
我在一个经典的情况下使用了这个 NestedFragment:创建可以左右滑动并占用大部分屏幕空间的 fragmentA,并将 fragmentB 和 fragmentC 插入到每个 Fragment 页面中。
我的问题是我在 fragmentB 和 fragmentC 中创建的 MenuItem 无法在 Activity 的操作栏上显示。在我使用 NestedFragment 之前,它运行良好。
【问题讨论】:
对此有解决方案吗? 【参考方案1】:在某个时候遇到了同样的问题。如果您使用的是 ActionBarSherlock 库,这是一个小错误。您基本上要做的是从 onCreateOptionsMenu() 方法中的父片段调用子级的 onCreateOptionsMenu() 方法,例如:
public void onCreateOptionsMenu(Menu menu, MenuInflater inflater)
super.onCreateOptionsMenu(menu, inflater);
getChildFragment().onCreateOptionsMenu(menu, inflater);
希望这可行,让我知道。
干杯。
【讨论】:
getChildFragment() 片段中不存在此方法。我似乎在任何地方都找不到它 所以你说的是这个错误吧? github.com/JakeWharton/ActionBarSherlock/issues/828 实际上您必须使用:getChildFragmentManager().findFragmentById()
或getChildFragmentManager().findFragmentByTag()
来获取子片段。然后你可以打电话给onCreateOptionsMenu(menu, inflater)
。不要忘记检查片段实例是否为非空和childFragment.isAdded()
。
我已经找了好几天了!谢谢!以上是关于ActionBar 菜单项在嵌套片段中消失的主要内容,如果未能解决你的问题,请参考以下文章
UINavigationController上的swift菜单项在打开segue时消失[关闭]