2

我意识到这是一个特定的问题,但是我觉得其他处理兼容性的人必须处理过这个问题。

当用户在 ViewPager 中滑动各种片段时,我还希望更改 actionBar 菜单项。我不确定这对于兼容性操作栏是否容易实现,任何方向或帮助将不胜感激。我只是通过 setTitle() 更改标题,因为 ActionBarHelper 处理这个但是我找不到任何更新菜单项的东西。我尝试了以下但失败了..

public void setMenuDynamically(int resId){
    MenuInflater menuInflater = getMenuInflater();
    menuInflater.inflate(resId, menu);
}

查看代码,似乎应该有一种简单/明显的方法来获取 SimpleMenu 的句柄并添加一个项目并设置其图标。

在此先感谢(我希望谷歌男孩们能像安卓开发者谷歌+建议的那样阅读这篇文章)

4

1 回答 1

1

好的,请让我知道我是否在描述事物方面很糟糕,或者对这个主题的了解不多。如果第一次真的对不起各位。无论如何,我似乎让这个工作,但不确定这是否是正确的方法。

AcitonBarHelper

    public void updateMenu(MenuItem item) {
}

ActionBarHelperBase(适用于 2.2 - 3.0 设备)

@Override
public void updateMenu(MenuItem item){
    addActionItemCompatFromMenuItem(item);
}

并为蜂窝和 ICS 创建类似的方法

最后我有一个页面更改的监听器,我在那个监听器中调用......

public void setMenuDynamically(int resId, String title){
    MenuItem item = menu.add(title);
    item.setIcon(resId);
    getActionBarHelper().updateMenu(item);
    MenuItemCompat.setShowAsAction(item, MenuItemCompat.SHOW_AS_ACTION_ALWAYS);
}

我不确定 MenuItemCompat 是否是必要的,但我还是将它包括在内。至少对于 2.2,一切似乎都很好。我很可能不得不对 Overrides 进行更改,但我可以从这里处理自己。

于 2012-02-02T11:10:12.903 回答