操作栏未显示支持库

时间:2014-06-05 14:24:45

标签: android android-support-library

我正在尝试使用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;
    }
}

1 个答案:

答案 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框架中不存在。所以你必须使用   您自己的命名空间作为由...定义的所有属性的前缀   支持图书馆。