【问题标题】:Search Action Item Missing in Action Bar搜索操作栏中缺少的操作项
【发布时间】:2014-06-19 18:53:19
【问题描述】:

我是 Android 开发新手。我正在关注 developer.android.com 的入门开发教程。不幸的是,我一直在尝试将搜索操作项添加到操作栏。这是我的 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);
}

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

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

【问题讨论】:

    标签: java android search android-actionbar


    【解决方案1】:

    这可能是因为您正在使用兼容性库,在这种情况下您需要向菜单 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 开头的两行 - 使用兼容性菜单选项时需要这些行。更改该前缀以匹配您应用的包名称。

    【讨论】:

    • 就是这样。非常感谢。
    • @AlanW :您会发现对于运行在 API 11 以下的设备,您确实需要那些带有包前缀的额外行。我目前找不到文档链接,但当我找到时,我会发表它。使用兼容性库时,您必须在许多地方做类似的事情。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-01-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-09-30
    • 1970-01-01
    相关资源
    最近更新 更多