使用support-v7-appcompat在ActionBar中搜索SearchView

时间:2014-01-21 17:57:58

标签: android eclipse android-support-library

我一直在努力使用support-v7库让SearchView小部件在操作栏中展开。当我的目标是4.0+时,我设法让它在没有支持库的情况下工作但我想编写2.3+的应用程序,所以我需要使用支持库。 我使用以下menu.xml创建了一个空白的新活动:

<menu xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:yourapp="http://schemas.android.com/apk/res-auto" >

<item
    android:id="@+id/action_settings"
    android:orderInCategory="100"
    android:showAsAction="never"
    android:title="@string/action_settings"/>
    
<item
    android:id="@+id/action_search"
    android:icon="@android:drawable/ic_menu_search"
    yourapp:showAsAction="always"
    yourapp:actionViewClass="android.support.v7.widget.SearchView"
    android:title="Search"/>
</menu>

这甚至没有显示搜索按钮,更不用说在点击时展开它了。它只是将搜索添加到菜单中,而不是在操作栏中显示。 using appcompat library (does not work)

或者我在没有appcompat库的情况下尝试了相同的操作,我只需将menu.xml替换为:

<item
    android:id="@+id/action_search"
    android:icon="@android:drawable/ic_menu_search"
    android:showAsAction="always"
    android:actionViewClass="android.widget.SearchView"
    android:title="Search"/>

它完美地运行,甚至在点击时扩展到搜索文本输入小部件。 enter image description here

我希望在使用appcompat库时,第二张图片中的搜索视图可用,但由于某种原因,它似乎无法正常工作。我正在使用eclipse,并且我已经将支持库包含在Support Library Setup[developer.android.com]中指定的资源中。

我的清单文件的minsdk版本为7,targetsdk版本为18,构建目标也为18。

我怀疑支持库设置有问题,有人可以告诉我我可能做错了什么吗?谢谢!

1 个答案:

答案 0 :(得分:16)

可能SearchView未显示,因为您错过了在此行中添加collapseActionViewyourapp:showAsAction="always"

此外,您的活动必须延长AppCompatActivity。因此,将AppCompat库添加到项目

您可以在此link

上阅读更多详细信息

希望它会对你有所帮助。