在典型的Android活动中,您通常会执行以下操作:
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.refresh_details, menu);
return true;
}
并在XML文件中,您将拥有:
android:showAsAction="always"
但是,当您将活动更改为ActionBarActivity时,会突然显示溢出菜单,并且该项目不会在操作栏中显示为图标。如何恢复行为?
答案 0 :(得分:2)
使用支持库属性时,您需要使用自定义命名空间,在此示例中为app
:
<menu xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto">
<item
...
app:showAsAction="always"/>
</menu>
来自Google Docs:
使用支持库中的XML属性
请注意 上面的showAsAction属性使用在中定义的自定义命名空间 标签。使用任何定义的XML属性时,这是必需的 支持库,因为这些属性不存在 旧设备上的Android框架。所以你必须使用自己的命名空间 作为支持库定义的所有属性的前缀。