gpt4 book ai didi

android - ViewPager 中嵌套 fragment 的 OptionsMenu

转载 作者:塔克拉玛干 更新时间:2023-11-02 21:05:01 25 4
gpt4 key购买 nike

我正在使用 ActionBarSherlock,我正在尝试使用 viewpager 实现嵌套 fragment 结构。

我有一个包含一些 View 和包装 fragment (FragmentA) 的 Activity

此 FragmentA 包含一个显示 FragmentA.1、FragmentA.2、FragmentA.3 的 View 分页器。

默认情况下,onCreateOptionsMenu 事件不会按原样分派(dispatch)给子 fragment 讨论 here .所以我正在使用 this解决问题的解决方案。

它在 API 级别 17 上运行良好,但在低于 API 级别时,它不显示第一个 fragment 的选项菜单,但是当我滚动到其他 fragment 时,一切都开始正常工作。我试过从父 fragment 调用 onCreateOptionsMenu 但没有结果。当我回滚到第一个 fragment 时它也有效。

有什么建议吗?

更新:

更清晰的结构表达方式:

包装器 fragment 是指包含 viewpager 的 fragment 。所以结构是

ACTIVITY 
-> WRAPPER FRAGMENT (holds viewpager and passes childfragmentmanager to adapter(FragmentPagerAdapter) as fragmentmanager) (parent is activity)
-> CHILDFRAGMENTS(items of viewpager) (parent is wrapper fragment but viewpager manages its framelayout)

我还找到了一个不太好的临时解决方案:

if(Build.VERSION.SDK_INT > 17){

pager.setCurrentItem(1,false);

} else {

new android.os.Handler().postDelayed(new Runnable() {
@Override
public void run() {
pager.setCurrentItem(1, true);
}
}, 300);


}

最佳答案

可能您在 Activity 创建结束之前初始化了您的 View 寻呼机。
这是问题所在,因为子 fragment 创建了它们的选项菜单,但随后, Activity 使所有选项菜单无效。
您必须在包装器 fragment 的 onActivityCreated 方法中初始化寻呼机。

关于android - ViewPager 中嵌套 fragment 的 OptionsMenu,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19809875/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com