0

当使用ActionbarCompat作为Actionbar BackPort 时,我遇到了 action-icons 不显示的问题 - 相同的代码/res 适用于 actionbarsherlock。

我做错了什么还是不支持?我还缺少getSupportMenuInflater()ABS 在 ActionBar compat 中的整个 Menu/MenuItem 部分 - 任何人都可以对此有所了解吗?

4

2 回答 2

5

这个问题已经在Actionbar 中得到了回答,AppCompat 没有显示

将以下命名空间添加到 xml 文件中的“菜单”项

xmlns:compat="http://schemas.android.com/apk/res-auto" 

然后更改“showAsAction”属性以使用新的命名空间

compat:showAsAction="ifRoom"

这是菜单中有一项的完整示例,第 2 行和第 6 行进行了更改(来自Actionbar 未与 AppCompat 一起显示

<menu xmlns:android="http://schemas.android.com/apk/res/android"
  xmlns:compat="http://schemas.android.com/apk/res-auto" >
    <item android:id="@+id/action_whatever"
      android:icon="@drawable/ic_action_whatever"
      android:title="@string/whatever"
      compat:showAsAction="ifRoom"  />
</menu>
于 2014-03-02T12:38:42.750 回答
0

使用新的ActionBarActivity时,您不再需要getSupportMenuInflator. 您的代码应如下所示:

@Override
public boolean onCreateOptionsMenu(Menu menu) {
    getMenuInflater().inflate(R.menu.main, menu);
    return super.onCreateOptionsMenu(menu);
}

invalidateOptionsMenu使用ActionBarActivity调用时,您确实需要使用新的支持版本:

supportInvalidateOptionsMenu();

这是我发现的ActionBarSherlock和新的ActionBarActivity之间仅有的两个主要区别。

于 2013-08-16T13:38:59.417 回答