SearchView的hint颜色怎么改呢,SearchView并没有提供相关属性。在网上找到的方法基本都是通过反射实现的。但本人不是很喜欢用反射,难道就不能通过样式修改,决定还是看看源码。下面是看了源码之后发现的方法。
注意我用的是v7包的SearchView。
style.xml
<style name="AppTheme" parent="Theme.AppCompat.Light.NoActionBar">
<!-- ... -->
</style>
查看Theme.AppCompat.Light.NoActionBar样式,最终找到Base.V7.Theme.AppCompat.Light的SearchViewStyle
<style name="Base.V7.Theme.AppCompat.Light" parent="Platform.AppCompat.Light">
<!-- ... -->
<item name="searchViewStyle">@style/Widget.AppCompat.Light.SearchView</item>
<!-- ... -->
</style>
看看SearchViewStyle
<style name="Base.Widget.AppCompat.SearchView" parent="android:Widget">
<item name="layout">@layout/abc_search_view</item>
<item name="queryBackground">@drawable/abc_textfield_search_material</item>
<item name="submitBackground">@drawable/abc_textfield_search_material</item>
<item name="closeIcon">@drawable/abc_ic_clear_material</item>
<item name="searchIcon">@drawable/abc_ic_search_api_material</item>
<item name="searchHintIcon">@drawable/abc_ic_search_api_material</item>
<item name="goIcon">@drawable/abc_ic_go_search_api_material</item>
<item name="voiceIcon">@drawable/abc_ic_voice_search_api_material</item>
<item name="commitIcon">@drawable/abc_ic_commit_search_api_mtrl_alpha</item>
<item name="suggestionRowLayout">@layout/abc_search_dropdown_item_icons_2line</item>
</style>
没有发现text相关属性,看看父样式有没有
<style name="Widget">
<item name="textAppearance">?textAppearance</item>
</style>
哈哈,这不是有么,那直接改textAppearance不就可以了吗,怀着激动的心情唰唰的撸起来。结果发现没什么用。为什么啊???
不要激动,有没有注意到layout这个属性。点进去看下吧,这其实searchView的布局文件