首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >更改android.support.v7.widget.SearchView的颜色

更改android.support.v7.widget.SearchView的颜色
EN

Stack Overflow用户
提问于 2016-07-29 19:49:26
回答 6查看 14.9K关注 0票数 6

我正在使用搜索视图。

代码语言:javascript
运行
复制
  <android.support.v7.widget.SearchView
            android:id="@+id/searchView"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_centerVertical="true"
            android:layout_toLeftOf="@+id/imageViewMenu"
            >
  </android.support.v7.widget.SearchView>

是否可以将文本颜色和图标颜色更改为视图?

目前它显示黑色文本和图标。我想把它改为白色文本和白色搜索图标。

EN

回答 6

Stack Overflow用户

回答已采纳

发布于 2016-07-29 19:56:37

这可能行得通..

代码语言:javascript
运行
复制
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));
票数 14
EN

Stack Overflow用户

发布于 2016-08-30 19:55:24

对于android.support.v7.widget.SearchView,您可以使用以下代码更改文本颜色、文本提示颜色和图标:

代码语言:javascript
运行
复制
@Override
public boolean onPrepareOptionsMenu(Menu menu) {
    MenuItem searchMenuItem = menu.findItem(R.id.menu_action_search);
    SearchView searchViewAction = (SearchView) MenuItemCompat.getActionView(searchMenuItem);

    SearchManager searchManager = (SearchManager) getSystemService(Context.SEARCH_SERVICE);
    SearchableInfo searchableInfo = searchManager.getSearchableInfo(getComponentName());

    searchViewAction.setSearchableInfo(searchableInfo);
    searchViewAction.setIconifiedByDefault(true);

    EditText searchEditText = (EditText)searchViewAction.findViewById(android.support.v7.appcompat.R.id.search_src_text);
    searchEditText.setTextColor(getResources().getColor(R.color.white));
    searchEditText.setHintTextColor(getResources().getColor(R.color.white));

    ImageView searchMagIcon = (ImageView)searchViewAction.findViewById(android.support.v7.appcompat.R.id.search_button);
    searchMagIcon.setImageResource(R.drawable.ic_search_white);


    return super.onPrepareOptionsMenu(menu);
}
票数 7
EN

Stack Overflow用户

发布于 2016-07-29 19:58:40

要更改文本颜色,请执行以下操作:

代码语言:javascript
运行
复制
int searchSrcTextId = getResources().getIdentifier("android:id/search_src_text", null, null);  
EditText searchEditText = (EditText) searchView.findViewById(searchSrcTextId);  
searchEditText.setTextColor(Color.WHITE);  
searchEditText.setHintTextColor(Color.LTGRAY); 

要更改关闭按钮,请执行以下操作:

代码语言:javascript
运行
复制
int closeButtonId = getResources().getIdentifier("android:id/search_close_btn", null, null);  
ImageView closeButtonImage = (ImageView) searchView.findViewById(closeButtonId);  
closeButtonImage.setImageResource(R.drawable.ic_action_cancel);  

//此摘录来自Android源码(SearchView.java)

代码语言:javascript
运行
复制
mSearchButton = findViewById(R.id.search_button);  
mSearchEditFrame = findViewById(R.id.search_edit_frame);  
mSearchPlate = findViewById(R.id.search_plate);  
mSubmitArea = findViewById(R.id.submit_area);  
mSubmitButton = findViewById(R.id.search_go_btn);  
mCloseButton = (ImageView) findViewById(R.id.search_close_btn);  
mVoiceButton = findViewById(R.id.search_voice_btn);  
mSearchHintIcon = (ImageView) findViewById(R.id.search_mag_icon); 

参考:link

票数 6
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/38658093

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档