2015-04-03 17 views
9

Ho cercato di impostare il carattere personalizzato per il suggerimento di query android.support.v7.widget.SearchView e il testo immesso nella View.I ho provato a impostare il font dinamicamente dal assests al searchView creando un oggetto TypeFace, ma il problema si verifica che "SearchView non contiene un metodo setTypeface (Typeface tf)." Ho provato per una classe SearchView personalizzata ma non sono riuscita a trovarne una.SearchView carattere personalizzato in Android

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.. 

    } 
+0

Prova questo 'searchView.setQueryHint (Html.fromHtml (" "+ getResources(). GetString (R.string.search_hint) +" ")); ' – Apurva

+0

@Apurva lasciami controllare e ti faccio sapere – AndroidMech

+0

@Apurva No, questo non funziona .. – AndroidMech

risposta

30

La soluzione è quello di ottenere prima del SearchView textView e quindi modificare il tipo di carattere per il textView invece:

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); 

Oppure, se non si sta usando appcompatv7:

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

quindi impostare il carattere tipografico come al solito.

+0

Mentre presumo che funzioni, stai assumendo i dettagli di implementazione della classe SearchView. Questi potrebbero cambiare in qualsiasi momento, non è un presupposto sicuro. –

Problemi correlati