我的问题与
SearchView wrong alignment和
SearchView positions when expanded in ActionBar密切相关,但那里发布的答案不起作用.
所以,我在Action Bar使用的是SearchView:
@H_502_4@<item android:id="@+id/action_search" android:icon="@drawable/navi_search" android:title="@string/action_search" android:showAsAction="ifRoom|collapseActionView" android:actionViewClass="android.widget.SearchView" />它默认看起来像这样(右上角,溢出菜单旁边):
问题是,当扩展时,我希望SearchView保持在右侧,而是移动到左边缘,在主页按钮(应用程序图标)旁边.
我尝试将showAsAction更改为其中任何一个(as suggested here):
@H_502_4@android:showAsAction="ifRoom" android:showAsAction="always"…这会在展开时修复对齐,但在折叠状态下自定义图标会丢失:
此外,菜单上的android:layout_alignParentRight =“true”和android:layout_centerInParent =“true”等内容< item>没有效果.
有任何想法吗?
我的目标是Android 4.0及以上版本:
@H_502_4@<uses-sdk android:minSdkVersion="14" android:targetSdkVersion="19" />解决方法
好吧,我找到了一个方法:
在onCreateOptionsMenu()中,在标准菜单膨胀之后,设置
用于SearchView实例的Renvity.RIGHT为ActionBar.LayoutParams
:
(在菜单定义XML中,我仍然使用android:showAsAction =“ifRoom | collapseActionView”.)
现在,SearchView将在右侧,图标所在的同一位置打开,并且自定义图标仍在使用中.