Android fragments ActionBarSherlock-在碎片上使用SetHasOptions菜单true时,在2.x设备上首次启动时不会显示溢出菜单

Android fragments ActionBarSherlock-在碎片上使用SetHasOptions菜单true时,在2.x设备上首次启动时不会显示溢出菜单,android-fragments,actionbarsherlock,android-menu,Android Fragments,Actionbarsherlock,Android Menu,如果片段的HassetOptions菜单为true,则在OS 2.x上首次启动时不会每次显示溢出菜单。旋转装置解决了这个问题。此外,该问题在3.x或4.x上不可复制 我使用的是ActionBarSherlock的4.1版本,保存片段的FragmentActivity有一个forceoverflow主题 尝试将HassetOptions菜单设置为false,这似乎解决了问题,但我必须为每个片段添加不同的菜单项,因此这不是我的选项 在调试应用程序时,对于应用程序中的每个HassetOptions菜单

如果片段的HassetOptions菜单为true,则在OS 2.x上首次启动时不会每次显示溢出菜单。旋转装置解决了这个问题。此外,该问题在3.x或4.x上不可复制

我使用的是ActionBarSherlock的4.1版本,保存片段的FragmentActivity有一个forceoverflow主题

尝试将HassetOptions菜单设置为false,这似乎解决了问题,但我必须为每个片段添加不同的菜单项,因此这不是我的选项

在调试应用程序时,对于应用程序中的每个HassetOptions菜单(true),菜单似乎都无效,并且会重新创建活动和片段的OnCreateOptions菜单。另外,一个有趣的事实是,在调试期间,应用程序启动会延迟,因为它在不同的断点处停止,这会导致出现溢出菜单。这让我确信它可以在Android SDK中报告,但评论8中提到的解决方法对我都不起作用

另一个信息:按下硬件选项按钮,将显示溢出菜单,因此问题似乎是溢出图标未显示

我还发现这个问题也是ABS中的一个问题,但它似乎已被修复,我拥有该库的最新版本

以前有人遇到过这种情况吗?你知道解决这个问题的方法吗?

解决它!在onResume()中为FragmentActivity添加了“getSherlock().DispatchInvalidateOptions菜单();”,以强制菜单无效。这似乎解决了问题。我知道这是一个黑客,但没有设法找到另一个解决方案。尝试将菜单无效添加到片段中(onCreateView或onActivityCreated),但这并没有修复它。 因此,如果您遇到此问题,这是一个解决方法:

    @Override
    protected void onResume() {
        super.onResume();

        .....
        getSherlock().dispatchInvalidateOptionsMenu();
    }
谢谢马可的提示

解决它!在onResume()中为FragmentActivity添加了“getSherlock().DispatchInvalidateOptions菜单();”,以强制菜单无效。这似乎解决了问题。我知道这是一个黑客,但没有设法找到另一个解决方案。尝试将菜单无效添加到片段中(onCreateView或onActivityCreated),但这并没有修复它。 因此,如果您遇到此问题,这是一个解决方法:

    @Override
    protected void onResume() {
        super.onResume();

        .....
        getSherlock().dispatchInvalidateOptionsMenu();
    }

谢谢马可的提示

在ABS上也发现了此错误:。可能与此相关。您在哪里设置HassetOptions菜单(true)?我通常在onCreate方法中调用这个方法,它在onCreate中对我有效。我尝试将其移动到onActivityCreated,正如我在其他线程上发现的那样,但这并没有解决我的问题HMM您是否尝试将HassetOptions菜单(true)保留在onCreate和onActivityCreated中,称为getSherlockActivity().InvalidateOptions菜单()?这可能是目前的一个解决方法。尝试了此操作,但无法解决问题:(在ABS上也发现此错误:。可能与此相关。您在哪里设置HassetOptions菜单(true)?我通常在onCreate方法中调用此方法,并且它对我有效。在onCreate中。我尝试将其移动到onActivityCreated,正如我在其他线程中发现的那样,以执行此操作,但这并没有解决我的问题。mm您是否尝试将HassetOptions菜单(true)保留在onCreate中,并在onActivityCreated中,称为getSherlockActivity()。InvalidateOptions菜单()?这可能是目前的一个解决方法。尝试了这个方法,但没有解决问题:(此黑客对我不起作用。我的问题是:当我打开SettingsActivity时,当我返回时,带有“设置”的溢出就消失了。此黑客对我不起作用。我的问题是:当我打开SettingsActivity时,当我返回时,带有“设置”的溢出就消失了就这样消失了。