我的SearchView位于布局(LineaLayout/RelativeLayout)不在操作栏中.如何更改文本颜色.默认颜色是白色如何更改文本颜色?
And*_*eek 23
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));
Run Code Online (Sandbox Code Playgroud)
Cor*_*ălu 22
深入研究appcompat SearchView的源代码我发现它使用AppCompatAutoCompleteTextView默认情况下使用的autoCompleteTextView样式.
创建不同的自动完成样式并在应用主题中设置它解决了我的问题.
<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>
Run Code Online (Sandbox Code Playgroud)
试试这个,
SearchView searchView= (SearchView) findViewById(R.id.searchView1);
int id = searchView.getContext()
.getResources()
.getIdentifier("android:id/search_src_text", null, null);
TextView textView = (TextView) searchView.findViewById(id);
textView.setTextColor(Color.WHITE);
Run Code Online (Sandbox Code Playgroud)
要么
((EditText) searchView.findViewById(android.support.v7.appcompat.R.id.search_src_text))
.setHintTextColor(getResources().getColor(R.color.white));
Run Code Online (Sandbox Code Playgroud)
要么
searchView.setQueryHint(Html.fromHtml("<font color = #ffffff>" +
getResources().getString(R.string.your_str) + "</font>"));
Run Code Online (Sandbox Code Playgroud)
这可能对你有所帮助.
对我来说,下一个方法是:
1.将样式添加到你的styles.xml
<style name="SearchViewStyle" parent="Widget.AppCompat.SearchView">
<item name="android:textColor">@color/white</item>
<item name="android:editTextColor">@color/white</item>
<item name="android:textColorHint">@color/light_gray</item>
</style>
Run Code Online (Sandbox Code Playgroud)
2.在您的 SearchView 布局代码中添加这一行
app:theme="@style/SearchViewStyle"
Run Code Online (Sandbox Code Playgroud)
小智 5
我会通过 xml 布局文件来完成这种工作。这可以在 res/layout 文件夹中找到。
您需要执行类似于以下操作的操作:
将其添加到父主题中。
<item name="android:editTextColor">@android:color/white</item>
Run Code Online (Sandbox Code Playgroud)
这应该会更改输入的文本。
你也可以使用这样的东西:
<item name="android:textColorHint">@android:color/white</item>
Run Code Online (Sandbox Code Playgroud)
它将更改 SearchView 的提示文本。
希望这可以帮助 :)
尝试一下,如果不起作用尝试更改您的主题。
((EditText) searchView.findViewById(android.support.v7.appcompat.R.id.search_src_text)).setHintTextColor(getResources().getColor(R.color.white));
Run Code Online (Sandbox Code Playgroud)
或者尝试这样
searchView.setQueryHint(Html.fromHtml("<font color = #ffffff>" + getResources().getString(R.string.hintSearchMess) + "</font>"));
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
13381 次 |
| 最近记录: |