如何更改工具栏SearchView下划线颜色为灰色

时间:2016-09-29 10:33:29

标签: android xml toolbar android-toolbar searchview

我在扩展搜索栏时尝试更改搜索视图的下划线颜色

    SearchView.SearchAutoComplete autoCompleteTextView = (SearchView.SearchAutoComplete) searchView.findViewById(R.id.search_src_text);
    autoCompleteTextView.setCursorVisible(true);
    autoCompleteTextView.setTextColor(ContextCompat.getColor(this, R.color.textcolor_light_gray));
    autoCompleteTextView.setHintTextColor(autoCompleteTextView.getTextColors().withAlpha(255));
    autoCompleteTextView.setTextSize(16);

    View searchplate = (View)searchView.findViewById(android.support.v7.appcompat.R.id.search_plate);
    searchplate.setBackgroundResource(R.drawable.autocomplete_bg);

这里我用主题来改变颜色

 <style name="MySearchViewStyle" parent="Widget.AppCompat.Light.SearchView">
    <!-- Background for the search query section (e.g. EditText) -->
    <item name="queryBackground">@color/darkgray</item>

</style>

但没有任何对我有用。任何人帮助我...

3 个答案:

答案 0 :(得分:6)

最后我得到了解决方案..

ComboBox

答案 1 :(得分:1)

您也可以通过xml更改它:

<item name="android:queryBackground">...</item>

我猜你忘记了android:前缀

答案 2 :(得分:0)

以下示例对我有用,我希望它也适用于您。

<SearchView
    android:id="@+id/search_bar"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:iconifiedByDefault="false"
    android:gravity="center"
    android:background="@drawable/bg_searchview"
    android:queryBackground="@drawable/bg_searchview_query"/>

android:queryBackground="@drawable/bg_searchview_query"

在 drawable 中,创建 .xml 文件 bg_searchview 作为背景

<?xml version="1.0" encoding="utf-8"?>
<shape
    xmlns:android="http://schemas.android.com/apk/res/android">
    <padding
        android:top="10dp"
        android:bottom="10dp" />
    <solid android:color="#FFFFFF" />
    <corners android:radius="20dp"/>
    <stroke
        android:width="0.3dp"
        android:color="#797979" />
</shape>

在drawable中,为queryBackground创建一个.xml文件bg_searchview_query

<?xml version="1.0" encoding="utf-8"?>
<shape
    xmlns:android="http://schemas.android.com/apk/res/android">
    <solid android:color="#FFFFFF" />
    <corners android:radius="20dp"/>
</shape>