当使用 ActionbarCompat 作为 Actionbar BackPort时,我遇到的问题是动作图标没有显示 - 相同的代码/ res与actionbarsherlock一起使用。
我做错了什么还是不支持?我也错过了ABS在ActionBar compat中的整个Menu / MenuItem getSupportMenuInflater()
部分 - 任何人都可以对此有所了解吗?
答案 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 之间唯一的两个主要区别。