【问题标题】:Using Options Menu in a multi-Fragment Activity在多片段活动中使用选项菜单
【发布时间】:2011-07-26 14:23:58
【问题描述】:

我有一个FragmentActivity,它承载了一个FragmentStatePagerAdapter。寻呼机包含同一片段的多个实例,以便用户可以在列表中的项目之间滑动。我希望能够为用户提供一个仅对可见项目起作用的选项菜单。

例如,我有一个图像列表显示在片段内的图像视图中。我想要一个选项菜单项,允许用户将图像设置为他们的壁纸。

在我尝试这个的那一刻,当onPrepareOptionsMenu被调用时,代码在多个片段中被调用(通常是当前+下一个)。选择项目时也是如此。这会导致将错误的图像设置为壁纸。

如何防止选项菜单触发超过当前可见的片段?

【问题讨论】:

    标签: android android-fragments options-menu


    【解决方案1】:

    我的解决方案是使用ViewPagersetOnPageChangeListener 方法,以便通过onPageSelected 回调跟踪当前可见的Fragment 索引。您仍然需要自己获取初始索引,但在我的情况下这很简单

    【讨论】:

      【解决方案2】:

      您可以在 Activity 的 onOptionsItemSelected 中拦截选项菜单回调,并从那里的正确片段中显式调用该项目,返回 true 表示您已处理它。

      【讨论】:

      • 我不确定我是否理解。你是说FragmentActivity 中有onOptionsItemSelected 代码?但是我怎样才能获得对正确 Fragment 的引用?
      【解决方案3】:

      诀窍是在填充菜单之前更改每个片段上的 sethasoptions(true|false)。这已经帮助了我

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-01-21
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多