casillas
casillas

Reputation: 16793

Change SearchView TextSize

I have the following SearchView implementation in the xml, the text entry has been cut from the top as shown in the below image. No matter what textSize I am putting, nothing changes.

enter image description here

<LinearLayout
   android:orientation="horizontal"
   android:layout_width="match_parent"
   android:layout_height="32dp"
   android:gravity="center_vertical"
   android:layout_marginTop="10dp">
     <SearchView
        android:id="@+id/search_view"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:textSize="12sp"/>
</LinearLayout>

Upvotes: 4

Views: 5091

Answers (4)

Pradeesh MP
Pradeesh MP

Reputation: 45

We can directly change in theme.xml It will affect in whole application, where it has an search view.

Eg,

    <item name="colorControlHighlight">@color/colorAccent</item>
    <item name="colorControlNormal">@android:color/black</item>
    <item name="android:editTextColor">@android:color/white</item>
    <item name="android:textColorHint">@android:color/white</item>
    <item name="android:textSize">30sp</item>

</style>

Upvotes: 1

Akash Dubey
Akash Dubey

Reputation: 1538

You can achieve this using a theme:

in styles.xml

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

And using a SearchView

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

Upvotes: 7

mrdm
mrdm

Reputation: 119

sv= (SearchView) findViewById(R.id.search_view);
TextView searchText = (TextView)               
sv.findViewById(android.support.v7.appcompat.R.id.search_src_text);
searchText.setTextSize(TypedValue.COMPLEX_UNIT_SP,12);

Upvotes: 2

Aniruddh Parihar
Aniruddh Parihar

Reputation: 3104

try this one

you have to pass your SearchView and textSize in this method

private void setSearchviewTextSize(SearchView searchView, int fontSize) {
        try {
            AutoCompleteTextView autoCompleteTextViewSearch = (AutoCompleteTextView) searchView.findViewById(searchView.getContext().getResources().getIdentifier("app:id/search_src_text", null, null));
            if (autoCompleteTextViewSearch != null) {
                autoCompleteTextViewSearch.setTextSize(TypedValue.COMPLEX_UNIT_SP, fontSize);
            } else {
                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(TypedValue.COMPLEX_UNIT_SP, fontSize);
            }
        } catch (Exception e) {
            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(TypedValue.COMPLEX_UNIT_SP, fontSize);
        }
    }

update your XML also

<LinearLayout
   android:orientation="horizontal"
   android:layout_width="match_parent"
   android:layout_height="wrap_content"
   android:gravity="center_vertical">
     <SearchView
        android:id="@+id/search_view"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:textSize="12sp"/>
</LinearLayout>

Upvotes: 2

Related Questions