Android SearchView打开方向

Android SearchView打开方向,android,view,searchview,Android,View,Searchview,我已成功地将菜单项移动到工具栏的左侧 但不幸的是,当SearchView打开时,它会向左打开,因此它会消失,而只有SearchView的“关闭”按钮可见 我应该如何强制SearchView向右打开?无论SearchView是向左扩展还是向右扩展都不容易切换,这是SearchView布局的结果 但是,您可以尝试覆盖主题中的SearchView布局。我自己还没做过,你可能需要稍微调整一下布局才能把它做好 从theme.Material派生主题,并使用搜索视图的自定义样式覆盖searchViewSty

我已成功地将菜单项移动到工具栏的左侧

但不幸的是,当SearchView打开时,它会向左打开,因此它会消失,而只有SearchView的“关闭”按钮可见


我应该如何强制SearchView向右打开?

无论
SearchView
是向左扩展还是向右扩展都不容易切换,这是
SearchView
布局的结果

但是,您可以尝试覆盖主题中的
SearchView
布局。我自己还没做过,你可能需要稍微调整一下布局才能把它做好

theme.Material
派生主题,并使用搜索视图的自定义样式覆盖
searchViewStyle
属性:

<style name="MyTheme" parent="android:Theme.Material">
    <item name="android:searchViewStyle">@style/MySearchView</item>
</style>
最后,创建自定义的
layout/search\u view.xml
来调整布局。复制并进行所需的任何更改--可能会更改
搜索\u src\u文本
()和
搜索\u关闭\u btn
()

别忘了在复制的布局中为所有ID加上
android:
(或者不加前缀,如果您使用的是支持库变体,但这是另一回事,我相信您知道该怎么做)


(Marcos Vasconcelos)此解决方案在Android 4.0之前不起作用


(伊万·巴佐夫)谢谢你的编辑,但事实并非如此。实际上,在Android 5.0之前(因为它显然依赖于材料主题),但它可以调整为与
appcompat-v7
支持库一起使用,这使得它一直适用于2.1。OP显然使用了Android 5.0+或支持库——您可能已经注意到他们使用的是API 21之后才可用的支持库。是的,我正在使用支持库,我的目标是API 14。我会检查一下,然后告诉你。还有一个问题。我甚至可以从源代码复制所有支持SearchView的代码,包括代码和布局并进行更改吗?@Saeedentzari Yeah。您实际上不需要复制java源代码,只需重写布局即可。使用support lib,您不需要ID或样式属性中的
android:
前缀。
<style name="MySearchView" parent="android:Widget.Material.SearchView">
    <item name="android:layout">@layout/search_view</item>
</style>