Styling a SearchView in Android Action Bar

后端 未结 11 1620
小鲜肉
小鲜肉 2020-12-02 20:56

I have a search widget in my Action Bar like this:

\"Search

(1) How do I change

11条回答
  •  一个人的身影
    2020-12-02 20:58

    You can change the style of the searchview. Here is some code I used to tweak the edittext, the voice icon...

    SearchManager searchManager = (SearchManager) getSystemService(Context.SEARCH_SERVICE);
    
            SearchView searchView = (SearchView) menu.findItem(R.id.menu_search).getActionView();
            searchView.setSearchableInfo(searchManager.getSearchableInfo(getComponentName()));
    
            int searchPlateId = searchView.getContext().getResources().getIdentifier("android:id/search_plate", null, null);
            searchView.findViewById(searchPlateId).setBackgroundResource(R.drawable.textfield_search_selected);
    
            int voiceSearchPlateId = searchView.getContext().getResources().getIdentifier("android:id/submit_area", null, null);
            searchView.findViewById(voiceSearchPlateId).setBackgroundResource(R.drawable.textfield_search_right_selected);
    
            // change hint color
            int searchTextViewId = searchView.getContext().getResources().getIdentifier("android:id/search_src_text", null, null);
            TextView searchTextView = (TextView) searchView.findViewById(searchTextViewId);
            searchTextView.setHintTextColor(getResources().getColor(R.color.light_grey));
    

    [edit] A more complete answer is available here : Changing the background drawable of the searchview widget

提交回复
热议问题