搜索操作项在操作栏中丢失

时间:2014-06-19 18:53:20

标签: java android search android-actionbar

我是Android开发的新手。我正在关注developer.android.com的Beginning Development Tutorial。不幸的是,我一直试图将搜索操作项添加到操作栏。这是我的XML和对应的onCreateOptionsMenu:

<menu xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    tools:context="com.example.test.MainActivity" >

    <item android:id="@+id/action_search"
          android:icon="@drawable/ic_action_search"
          android:title="@string/action_search"
          app:showAsAction="always"/>

    <item
        android:id="@+id/action_settings"
        android:orderInCategory="100"
        android:title="@string/action_settings"
        app:showAsAction="never"/>

</menu>

    @Override
    public boolean onCreateOptionsMenu(Menu menu) {

    // Inflate the menu; this adds items to the action bar if it is present.
    getMenuInflater().inflate(R.menu.main, menu);
    return super.onCreateOptionsMenu(menu);
}

我的drawable目录包含所有屏幕密度的ic_action_search.png。另外,我的SDK min为8,目标为19.我也导入了v7.app.ActionBarActivity。

显示设置和溢出菜单,但搜索仍然缺失。我做错了什么?

1 个答案:

答案 0 :(得分:2)

可能是因为您正在使用兼容性库,在这种情况下您需要向菜单XML文件添加额外的属性。这是我搜索选项的项目......

<item android:id="@+id/options_menu_search"
    android:title="@string/search"
    android:icon="@android:drawable/ic_menu_search"
    com.mycompany.myapp:showAsAction="ifRoom|collapseActionView"
    com.mycompany.myapp:actionViewClass="android.support.v7.widget.SearchView" >
</item>

请注意以com.mycompany.myapp开头的两行 - 使用兼容性菜单选项时必须使用这些行。更改该前缀以匹配您应用的包名称。