I have a SearchView
inside a LinearLayout
and I\'m trying to set a different TextSize
for it (the SearchView
) but when se
Though AutoCompleteTextView
is superclass of SearchAutoComplete
, SearchView
use SearchAutoComplete
rather than AutoCompleteTextView
. use it and do more.
SearchView searchView=...;
SearchView.SearchAutoComplete autoComplete= searchView.findViewById(android.support.v7.appcompat.R.id.search_src_text);
float textSpSize=10.f;
if (autoComplete!=null){
autoComplete.setTextSize(textSpSize);
}
Check this answer Can we limit the number of character in edittext of SearchView in Android?. It uses SearchView.OnQueryTextListener in order to check if exceeded the limit.
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"
android:layout_height="80dp"
android:layout_marginTop="15dp"/>
I hope my solution will help(AndroidX).
styles.xml
<style name="SearchViewStyle" parent="Widget.AppCompat.Light.SearchView">
<item name="android:textSize">20sp</item>
</style>
your_layout_name.xml
<androidx.appcompat.widget.SearchView
app:defaultQueryHint="Search"
android:theme="@style/SearchViewStyle" // Not style!!
.
.
.
/>
When using ActionBarSherlock you have to do this:
AutoCompleteTextView searchTextView = (AutoCompleteTextView) searchView.findViewById(R.id.abs__search_src_text);
searchTextView.setTextColor(getResources().getColor(R.color.search_text_color));
You could do these using code
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);
Here is another solution
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));