Android中的SearchView自定义字体

我一直在尝试将自定义字体设置为android.support.v7.widget.SearchView查询提示和在View.I中输入的文本。我确实尝试通过创建TypeFace对象动态地将字体从assests设置为searchView,但是出现“SearchView不包含setTypeface(字体tf)方法”的问题。“ 我确实尝试过自定义的SearchView类但找不到。

  private void setFont(String font1, String font2, String font3) { Typeface tf = null; tf = UiUtil.changeFont(MainActivity.this, font1); btn1.setTypeface(tf); tf = UiUtil.changeFont(MainActivity.this, font2); btn2.setTypeface(tf); tf = UiUtil.changeFont(MainActivity.this, font3); btn3.setTypeface(tf); tf = UiUtil.changeFont(MainActivity.this, font3); // no set typeface method.. } 

这里的解决方法是首先获取searchView的textView,然后更改textView的字体:

  TextView searchText = (TextView) searchView.findViewById(android.support.v7.appcompat.R.id.search_src_text); Typeface myCustomFont = Typeface.createFromAsset(getAssets(),"fonts/myFont.ttf"); searchText.setTypeface(myCustomFont); 

或者,如果您不使用appcompatv7:

  int id = searchView.getContext().getResources().getIdentifier("android:id/search_src_text", null, null); TextView searchText = (TextView) searchView.findViewById(id); 

然后像往常一样设置字体。