android – 显示ActionBarSherlock SearchView总是扩展

android – 显示ActionBarSherlock SearchView总是扩展,第1张

概述我需要在ActionBar中显示SearchView总是展开和另外一个按钮,以便用户快速访问Search Activity中的搜索字符串. 我的活动有这个菜单布局: <menu xmlns:android="http://schemas.android.com/apk/res/android"> <item android:id="@+id/action_search" a 我需要在Actionbar中显示SearchVIEw总是展开和另外一个按钮,以便用户快速访问Search Activity中的搜索字符串.
我的活动有这个菜单布局:
<menu xmlns:androID="http://schemas.androID.com/apk/res/androID">    <item androID:ID="@+ID/action_search"        androID:title="@string/action_search"        androID:icon="@drawable/ic_action_search"        androID:showAsAction="always"        androID:actionVIEwClass="com.actionbarsherlock.Widget.SearchVIEw"/>    <item androID:ID="@+ID/action_configure"        androID:title="@string/action_configure"        androID:icon="@androID:drawable/ic_menu_preferences"        androID:showAsAction="always" /></menu>

在Search活动类中,我按如下方式配置Actionbar:

@OverrIDepublic boolean onCreateOptionsMenu(Menu menu) {    getSupportMenuInflater().inflate(R.menu.search,menu);    SearchManager searchManager = (SearchManager) getSystemService(Context.SEARCH_SERVICE);    SearchVIEw searchVIEw = (SearchVIEw)menu.findItem(R.ID.action_search).getActionVIEw();    searchVIEw.setSearchableInfo(searchManager.getSearchableInfo(getComponentname()));    searchVIEw.setIconifIEdByDefault(false);    searchVIEw.setsubmitbuttonEnabled(false);return true;}

问题是,如果我做searchVIEw.setIconifIEdByDefault(false);我看到这张照片:

您可以注意到没有第二个菜单项.在这里,如果我设置androID:showAsAction =“always | collapseActionVIEw”,它默认会折叠,但我现在可以看到第二项:

在上图中我已按下搜索图标

有两个问题我无法弄清楚:

>如何始终显示两个元素:扩展搜索视图和配置 *** 作图标?
>我如何摆脱这个丑陋的第二个搜索图标?

解决方法 这是我隐藏内部搜索图标的解决方案.

在您管理主题的styles.xml中,将以下内容添加到application_theme部分(通常在base_theme下面)

<!--Application theme--><style name="application_theme" parent="application_base_theme">    <item name="searchVIEwSearchIcon">@androID:color/transparent</item>    <item name="searchVIEwCloseIcon">@androID:color/transparent</item></style>

这会强制 *** 作栏搜索小部件中所有出现的搜索图标都是透明的,并且是不可见的.

它们仍会在文本字段中占用空间,在左侧创建一个看不见的边距.如果要解决此问题,则必须使用自己的类扩展com.actionbarsherlock.Widget.SearchVIEw并添加以下内容:

ImageVIEw searchHintIcon = (ImageVIEw) findVIEwByID(R.ID.abs__search_mag_icon);searchHintIcon.setVisibility(VIEw.GONE);

我会将它添加到构造函数,但也覆盖setIconifIEd和setIconifIEdByDefault并将其包含在那里.这会强制它在展开 *** 作视图时隐藏图标.

要在 *** 作栏中显示其他图标,请尝试设置:

androID:showAsAction="collapseActionVIEw|ifRoom"

这应该会导致搜索栏在 *** 作栏中有足够的空间时展开,而不是将它们完全从栏中强制移除.

HTH

总结

以上是内存溢出为你收集整理的android – 显示ActionBarSherlock SearchView总是扩展全部内容,希望文章能够帮你解决android – 显示ActionBarSherlock SearchView总是扩展所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/web/1136600.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-05-30
下一篇2022-05-30

发表评论

登录后才能评论

评论列表(0条)

    保存