ActionbarCompat未显示Action-Icons

时间:2013-08-16 12:46:39

标签: android actionbarsherlock android-actionbar-compat

当使用 ActionbarCompat 作为 Actionbar BackPort时,我遇到的问题是动作图标没有显示 - 相同的代码/ res与actionbarsherlock一起使用。

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

2 个答案:

答案 0 :(得分:5)

Actionbar not shown with AppCompat已经回答了这个问题。

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

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

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

compat:showAsAction="ifRoom"

以下是菜单中有一个项目的完整示例,第2行和第6行的更改(来自Actionbar not shown with 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>

答案 1 :(得分:0)

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

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

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

supportInvalidateOptionsMenu();

这是 ActionBarSherlock 与我找到的新 ActionBarActivity 之间唯一的两个主要区别。