Failed to change actionbarsherlock SearchView icon

When I use the following configuration:

<item android:id="@+id/menu_item_search" android:actionViewClass="com.actionbarsherlock.widget.SearchView" android:icon="@android:drawable/ic_menu_search" android:showAsAction="ifRoom" android:title="@string/action_search"/> 

ActionBarSherlock SearchView does not respond to the provided android: icon

but in case

 android:showAsAction="ifRoom|collapseActionView" 
Icon

changed correctly, but the close button inside the search image is missing.

How to change the search icon and show the close button in the right corner of the search?

This is my AppTheme:

 <style name="AppTheme" parent="AppBaseTheme"> <item name="android:windowBackground">@color/background_window</item> <item name="android:actionBarStyle">@style/ActionBarStyle</item> <item name="homeAsUpIndicator">@drawable/new_indicator</item> <item name="android:homeAsUpIndicator">@drawable/new_indicator</item> <!-- ActionBar (SearchView) fix --> <item name="textColorPrimary">@color/abs__primary_text_holo_light</item> <item name="textColorPrimaryInverse">@color/abs__primary_text_holo_dark</item> <item name="searchDropdownBackground">@drawable/abs__search_dropdown_dark</item> <item name="searchViewTextField">@drawable/abs__textfield_searchview_holo_dark</item> <item name="searchViewTextFieldRight">@drawable/abs__textfield_searchview_right_holo_dark</item> <item name="searchViewCloseIcon">@drawable/abs__ic_clear</item> <item name="searchViewSearchIcon">@drawable/abs__ic_voice_search</item> <item name="searchViewGoIcon">@drawable/abs__ic_go</item> <item name="searchViewVoiceIcon">@drawable/abs__ic_voice_search</item> <item name="searchAutoCompleteTextView">@style/Widget.Sherlock.SearchAutoCompleteTextView.DarkActionBar</item> </style> <style name="Widget.Sherlock.SearchAutoCompleteTextView.DarkActionBar"> <item name="android:textColor">?attr/textColorPrimaryInverse</item> </style> 

application from manifest:

 <application android:allowBackup="true" android:icon="@drawable/ic_launcher" android:label="@string/app_name" android:theme="@style/AppTheme" > <activity android:name=".MainActivity" android:label="@string/app_name" > <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> </application> 

action bar menu:

 <item android:id="@+id/menu_item_search" android:icon="@drawable/abs__ic_clear" android:actionViewClass="com.actionbarsherlock.widget.SearchView" android:showAsAction="ifRoom" android:title="@string/action_search"/> <item android:id="@+id/menu_item_contact" android:icon="@drawable/ic_action_user" android:showAsAction="ifRoom" android:title="@string/action_contact"/> 

SearchView Menu Configuration:

 SearchManager searchManager = (SearchManager) getSystemService(Context.SEARCH_SERVICE); SearchView searchView = (SearchView) menu.findItem(R.id.menu_item_search).getActionView(); if (null != searchView) { searchView.setSearchableInfo(searchManager.getSearchableInfo(getComponentName())); searchView.setIconifiedByDefault(true); } SearchView.OnQueryTextListener queryTextListener = new SearchView.OnQueryTextListener() { public boolean onQueryTextChange(String newText) { // this is your adapter that will be filtered // adapter.getFilter().filter(newText); return true; } public boolean onQueryTextSubmit(String query) { // this is your adapter that will be filtered // adapter.getFilter().filter(query); return true; } }; searchView.setOnQueryTextListener(queryTextListener); 
+4
source share
1 answer

You can accomplish this by setting an attribute for your activity theme. In your styles.xml file, add the following lines and make sure you apply MyTheme, or whatever you want to name, either to your application or to the action your view lives in. I also added the attribute "searchAutoCompleteTextView", which allows you to customize the color of the text and, if you want

  <style name="MyTheme" parent="Theme.Sherlock"> <item name="searchViewCloseIcon">@drawable/YOUR_CLOSE_ICON</item> <item name="searchViewSearchIcon">@drawable/YOUR_SEARCH_ICON</item> <item name="searchAutoCompleteTextView">@style/searchTextView</item> </style> <style name="searchTextView" parent="Widget.Sherlock.SearchAutoCompleteTextView"> <item name="android:textColor">@android:color/white</item> <item name="android:textColorHint">@android:color/black</item> </style> 
+7
source

Source: https://habr.com/ru/post/1484909/


All Articles