使用support-v7-appcompat在ActionBar中实现SearchView

9

我一直在努力使用support-v7库使SearchView控件在actionbar中扩展。当我以4.0+为目标时,我已经设法在没有支持库的情况下让它工作。但是我想为2.3+编写应用程序,所以我需要使用support库。 我创建了一个空白的新活动,并使用以下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>

这甚至不显示搜索按钮,更不用说点击后展开了。它只是将搜索添加到菜单中,而不是在操作栏中显示出来。 使用appcompat库(不起作用)

另外,我尝试了没有使用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
请查看我的答案:https://dev59.com/amMk5IYBdhLWcg3w8STa#18942838。它可能会对你有所帮助。 - Szymon
1个回答

16

也许你错过了在这一行中添加collapseActionView,所以可能没有显示SearchViewyourapp:showAsAction="always"

此外,你的活动必须扩展AppCompatActivity。因此,请将AppCompat库添加到项目中。

更多详情请参阅此链接

希望它能对你有所帮助。


谢谢!我遇到的问题是我没有继承ActionBarActivity,感谢您指出这一点! - phininity
大家好!当TextView为空时,你们是否看到关闭按钮(x)?我无法在使用appcompat的SearchView时重现该行为,但是当我使用Android的'android.widget.SearchView'时,我肯定会观察到它。有人遇到这个问题吗? - acrespo

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接