My SearchView is located in a LinearLayout / RelativeLayout rather than the action bar.
Its default text color is white, how to change it?
Digging into the source code of the appcompat SearchView I found that it uses an AppCompatAutoCompleteTextView
which by default uses the autoCompleteTextView
style.
Creating a different autocomplete style and setting it in the app theme solved the problem for me.
<style name="SearchAutoCompleteTextView" parent="Widget.AppCompat.Light.AutoCompleteTextView">
<item name="android:textColor">@color/my_text_color</item>
<item name="android:textColorHint">@color/my_hint_color</item>
</style>
<style name="AppTheme" parent="Theme.AppCompat.Light">
...
<item name="autoCompleteTextViewStyle">@style/SearchAutoCompleteTextView</item>
</style>
For Androidx Library
SearchView searchView = (SearchView) findViewById(R.id.search);
EditText searchEditText = searchView.findViewById(androidx.appcompat.R.id.search_src_text);
searchEditText.setTextColor(getResources().getColor(R.color.white));
searchEditText.setHintTextColor(getResources().getColor(R.color.white));
For Android Support Library
SearchView searchView = (SearchView) findViewById(R.id.search);
EditText searchEditText = (EditText) searchView.findViewById(android.support.v7.appcompat.R.id.search_src_text);
searchEditText.setTextColor(getResources().getColor(R.color.white));
searchEditText.setHintTextColor(getResources().getColor(R.color.white));
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With