【问题标题】:What happens when invalidateOptionsMenu() is called in Android?在 Android 中调用 invalidateOptionsMenu() 会发生什么?
【发布时间】:2014-03-03 12:41:49
【问题描述】:

我非常想知道拨打invalidateOptionsMenu() 时会发生什么。它是重绘整个操作栏还是只调用onCreateOptionsMenu(),然后调用onPrepareOptionsMenu()。根据 android 源代码,它声明选项菜单已更改,因此应重新创建。下次需要显示时会调用onCreateOptionsMenu(android.view.Menu) 方法。我有几点需要澄清:

  • 它是否会以任何方式影响 ActionBar 选项卡?
  • 它会影响activity布局内的viewpager吗?
  • 它会影响与操作栏选项卡关联的片段吗?

【问题讨论】:

    标签: android android-fragments android-actionbar android-viewpager android-menu


    【解决方案1】:

    它声明选项菜单已更改,因此应重新创建。下次需要时会调用 onCreateOptionsMenu(Menu) 方法 显示出来。

    它会以任何方式影响 ActionBar 选项卡吗?

    它会重绘它们。

    它会影响activity布局内的viewpager吗?

    没有。

    它会影响与操作栏标签相关的片段吗?

    没有

    【讨论】:

    • 嗨@Smittey 你说 InvalidateOptionMenu() 将创建 ActioBar 选项卡。我只是想知道执行你知道的那段代码只是为了确保它真的发生以及我如何避免这种情况发生。因为由于这个调用,与选项卡关联的片段在 S3 上被销毁。
    • 更新:我已经确定片段消失的原因是从非 UI 线程调用无效选项菜单
    猜你喜欢
    • 2011-11-19
    • 2020-11-22
    • 1970-01-01
    • 2010-12-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多