我正在尝试使用v7支持库的操作栏实现活动。但是动作栏没有表现出来。当我触摸菜单按钮时,菜单项显示为普通菜单列表。我做错了什么?
Manifest.xml:
<application
android:allowBackup="true"
android:icon="@drawable/ic_launcher"
android:label="@string/app_name"
android:theme="@style/AppTheme" >
<activity
android:name=".ChatSession_ActionBarActivity"
android:theme="@style/Theme.AppCompat.Light">
<intent-filter>
<action android:name="android.intent.action.VIEW" />
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
</activity>
</application>
chatsession_menu.xml:
<?xml version="1.0" encoding="utf-8" ?>
<menu xmlns:android="http://schemas.android.com/apk/res/android">
<item
android:id="@+id/dummy1"
android:title="dummy1 menu option"
android:showAsAction="always"
android:icon="@drawable/ic_action_search">
</item>
</menu>
ChatSession_ActionBarActivity:
import android.os.Bundle;
import android.support.v7.app.ActionBarActivity;
import android.view.Menu;
import android.view.MenuInflater;
public class ChatSession_ActionBarActivity extends ActionBarActivity{
@Override
public void onCreate(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.actionbaractivity_chatsession);
getSupportActionBar().show(); //this line is not required, but just giving it a try
}
@Override
public boolean onCreateOptionsMenu(Menu menu){
MenuInflater inflater = getMenuInflater();
inflater.inflate(R.menu.chatsession_menu, menu);
return true;
}
}
答案 0 :(得分:1)
你需要
<menu xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:yourapp="http://schemas.android.com/apk/res-auto" >
<item
android:id="@+id/dummy1"
android:title="dummy1 menu option"
yourapp:showAsAction="always"
android:icon="@drawable/ic_action_search">
</item>
</menu>
来自文档
请注意,上面的showAsAction属性使用自定义命名空间 在标签中定义。使用任何XML时都需要这样做 由支持库定义的属性,因为这些属性可以 旧设备上的Android框架中不存在。所以你必须使用 您自己的命名空间作为由...定义的所有属性的前缀 支持图书馆。