Android appcompat SeachView小部件的自定义字体
我面临以下问题: 我对所有文本视图、按钮、编辑文本等使用自定义字体Android appcompat SeachView小部件的自定义字体,android,android-appcompat,Android,Android Appcompat,我面临以下问题: 我对所有文本视图、按钮、编辑文本等使用自定义字体 Typeface myTypeface = Typeface.createFromAsset(getContext().getAssets(), "fonts/" + fontName); setTypeface(myTypeface); 唯一没有自定义字体的视图是SearchView小部件(android.support.v7.Widget.SearchView),它通过xml添加到菜单中 menu.xml <?xml
Typeface myTypeface = Typeface.createFromAsset(getContext().getAssets(), "fonts/" + fontName);
setTypeface(myTypeface);
唯一没有自定义字体的视图是SearchView小部件(android.support.v7.Widget.SearchView),它通过xml添加到菜单中
menu.xml
<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:android="http://schemas.android.com/apk/res/android">
<item android:id="@+id/menu_item_message_search"
android:title="@string/search_placeholder"
android:icon="@android:drawable/ic_menu_search"
app:showAsAction="ifRoom|collapseActionView"
app:actionViewClass="android.support.v7.widget.SearchView" />
</menu>
知道如何为这个视图设置自定义字体吗
谢谢:)首先您需要查找视图
SearchView sv = (SearchView) menu.findItem(R.id. menu_item_message_search);
在这段代码中,我不确定它是否会转换为SearchView,尽管findItem可以工作。因为我添加了菜单而不是xml
之后,您可以通过以下代码从SearchView中找到SearchAutoComplete
SearchView.SearchAutoComplete searchAutoComplete = (SearchView.SearchAutoComplete) sv.findViewById(android.support.v7.appcompat.R.id.search_src_text);
然后,您可以为searchAutoComplete设置字体
searchAutoComplete.setTypeface(typeface)
祝你好运,我希望这会对你有所帮助。我正在使用appcompat 22.1.0。查看android.support.v7.widget.SearchView类的源代码,文本字段是一个静态嵌套类
SearchAutoComplete
。在主题中覆盖此选项将允许您更改字体系列
styles.xml
<style name="AppTheme" parent="Theme.AppCompat.Light">
...
<item name="android:autoCompleteTextViewStyle">@style/AutoCompleteTextView</item>
</style>
<style name="AutoCompleteTextView" parent="Widget.AppCompat.Light.AutoCompleteTextView">
...
<item name="android:textAppearance">@style/AutoCompleteTextViewTextAppearance</item>
</style>
<style name="AutoCompleteTextViewTextAppearance" parent="TextAppearance.AppCompat.Medium.Inverse">
<item name="android:fontFamily">sans-serif-thin</item>
</style>
...
@样式/自动完成文本视图
...
@样式/自动完成文本视图文本外观
无衬线薄
请注意,android:fontFamily
仅可从API 16获得。检查此项