2012-05-10 15 views
13

Tengo un SearchView dentro de un LinearLayout y estoy tratando de configurar un TextSize diferente para él (el SearchView) pero al configurar android:textSize="60sp" por ejemplo, no pasa nada.Cómo establecer SearchView TextSize?

Este es mi código:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
      android:layout_width="fill_parent" 
      android:layout_height="wrap_content" 
      android:orientation="vertical" 
      android:padding="2dp"> 
<SearchView 
     android:id="@+id/searchView" 
     android:layout_width="350dp" 
     android:textSize="60sp" 
     android:layout_height="80dp" 
     android:layout_marginTop="15dp"/> 
<ListView 
     android:id="@+id/search_results" 
     android:layout_width="fill_parent" 
     android:layout_height="wrap_content"/> 

¿Alguien sabe cómo modificar la TextSize del control?

Respuesta

31

que podría hacer esto utilizando el código

SearchView searchView = new SearchView(context); 
LinearLayout linearLayout1 = (LinearLayout) searchView.getChildAt(0); 
LinearLayout linearLayout2 = (LinearLayout) linearLayout1.getChildAt(2); 
LinearLayout linearLayout3 = (LinearLayout) linearLayout2.getChildAt(1); 
AutoCompleteTextView autoComplete = (AutoCompleteTextView) linearLayout3.getChildAt(0); 
autoComplete.setTextSize(60); 

Aquí hay otra solución

SearchView searchView = new SearchView(context); 
AutoCompleteTextView search_text = (AutoCompleteTextView) searchView.findViewById(searchView.getContext().getResources().getIdentifier("android:id/search_src_text", null, null)); 
search_text.setTextColor(Color.WHITE); 
search_text.setTextSize(TypedValue.COMPLEX_UNIT_PX, getResources().getDimensionPixelSize(R.dimen.text_small)); 
+2

El primer método, con los diseños sub-lineales funcionaba perfectamente para mí . Por la razón que sea, el segundo método que usa getIdentifier() produce un texto de búsqueda nulo. De cualquier manera, gracias por la respuesta ya que esto era justo lo que necesitaba para disminuir el tamaño de fuente un poco – Silmarilos

+2

NullPointerException del segundo método –

+0

para el segundo método para trabajar Utilicé este id: android.support.v7.appcompat.R. id.search_src_text – moxi

4

Al utilizar ActionBarSherlock que tiene que hacer esto:

AutoCompleteTextView searchTextView = (AutoCompleteTextView) searchView.findViewById(R.id.abs__search_src_text); 
    searchTextView.setTextColor(getResources().getColor(R.color.search_text_color)); 
+0

Hy. No estoy usando ActionBarSherlock. – tetius

+1

La pregunta era sobre texto * tamaño *, no color. Para completar, la segunda línea en su respuesta debería ser algo como: 'searchTextView.setTextSize (TypedValue.COMPLEX_UNIT_PX, getResources(). GetDimension (R.dimen.font_size))' – gnuf

9

Esto se puede conseguir usando un tema:

en styles.xml

<style name="AppSearchView" parent="Widget.AppCompat.SearchView" > 
     <item name="android:textSize">60sp</item> 
    </style> 

y usando un SearchView

<android.support.v7.widget.SearchView 
      android:id="@+id/searchView" 
      android:layout_width="350dp" 
      app:theme="@style/AppSearchView" 
      android:layout_height="80dp" 
      android:layout_marginTop="15dp"/> 
+1

nice its working, gracias –

Cuestiones relacionadas