Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/219.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何更改SearchView的样式?_Java_Android_Searchview - Fatal编程技术网

Java 如何更改SearchView的样式?

Java 如何更改SearchView的样式?,java,android,searchview,Java,Android,Searchview,我必须在我的应用程序中实现一个SearchView XML声明如下所示: <SearchView android:id="@+id/searchView" style="@style/SearchViewStyle" android:layout_width="wrap_content" android:layout_height="20dp" android:layout_alignParentEnd="true" androi

我必须在我的应用程序中实现一个
SearchView

XML声明如下所示:

<SearchView
     android:id="@+id/searchView"
     style="@style/SearchViewStyle"
     android:layout_width="wrap_content"
     android:layout_height="20dp"
     android:layout_alignParentEnd="true"
     android:layout_marginTop="5dp"
     android:layout_marginBottom="5dp"
     app:layout_constraintBottom_toBottomOf="parent"
     app:layout_constraintEnd_toEndOf="parent"
     app:layout_constraintTop_toTopOf="parent" />
我不明白如何更改提示的文本颜色和“edittext”的背景,我在其中键入用于研究的关键字

我刚才试了什么?

在style.xml中添加此行

<item name="android:textSize">18sp</item>
<item name="android:textColor">@color/white</item>

这些解决方案不起作用。

您可以使用EditeText代替具有相同属性的searchBox,方法是使用形状:

  <EditText
                      android:id="@+id/edt_search"
                      android:layout_width="match_parent"
                      android:layout_height="wrap_content"
                      android:layout_weight="1"
                      android:background="@drawable/shape_rectangle_edittext"
                      android:drawableRight="@drawable/ic_search_gray"
                      android:ems="10"
                      android:hint="@string/search_box"
                      android:imeOptions="actionSearch"
                      android:inputType="text"
                      android:padding="@dimen/size10"
                      android:textColorHint="#444"
                      android:textSize="@dimen/size16"
                      />

并在drawable中形成\u矩形\u edittext.xml:

<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
       android:shape="rectangle" android:padding="10dp">
    <solid android:color="#777"/>
    <corners
        android:bottomRightRadius="10dp"
        android:bottomLeftRadius="10dp"
        android:topLeftRadius="10dp"
        android:topRightRadius="10dp"/>
</shape>

您可以这样设置SearchView的样式:

<style name="Theme.MyTheme" parent="Theme.AppCompat">
   <item name="searchViewStyle">@style/MySearchViewStyle</item>
</style>
<style name="MySearchViewStyle" parent="Widget.AppCompat.SearchView">
   <!-- Background for the search query section (e.g. EditText) -->
   <item name="queryBackground">...</item>
   <!-- Background for the actions section (e.g. voice, submit) -->
   <item name="submitBackground">...</item>
   <!-- Close button icon -->
   <item name="closeIcon">...</item>
   <!-- Search button icon -->
   <item name="searchIcon">...</item>
   <!-- Go/commit button icon -->
   <item name="goIcon">...</item>
   <!-- Voice search button icon -->
   <item name="voiceIcon">...</item>
   <!-- Commit icon shown in the query suggestion row -->
   <item name="commitIcon">...</item>
   <!-- Layout for query suggestion rows -->
   <item name="suggestionRowLayout">...</item>
</style>

@样式/MySearchViewStyle
...
...
...
...
...
...
...
...
这里是详细信息

  <EditText
                      android:id="@+id/edt_search"
                      android:layout_width="match_parent"
                      android:layout_height="wrap_content"
                      android:layout_weight="1"
                      android:background="@drawable/shape_rectangle_edittext"
                      android:drawableRight="@drawable/ic_search_gray"
                      android:ems="10"
                      android:hint="@string/search_box"
                      android:imeOptions="actionSearch"
                      android:inputType="text"
                      android:padding="@dimen/size10"
                      android:textColorHint="#444"
                      android:textSize="@dimen/size16"
                      />
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
       android:shape="rectangle" android:padding="10dp">
    <solid android:color="#777"/>
    <corners
        android:bottomRightRadius="10dp"
        android:bottomLeftRadius="10dp"
        android:topLeftRadius="10dp"
        android:topRightRadius="10dp"/>
</shape>
<style name="Theme.MyTheme" parent="Theme.AppCompat">
   <item name="searchViewStyle">@style/MySearchViewStyle</item>
</style>
<style name="MySearchViewStyle" parent="Widget.AppCompat.SearchView">
   <!-- Background for the search query section (e.g. EditText) -->
   <item name="queryBackground">...</item>
   <!-- Background for the actions section (e.g. voice, submit) -->
   <item name="submitBackground">...</item>
   <!-- Close button icon -->
   <item name="closeIcon">...</item>
   <!-- Search button icon -->
   <item name="searchIcon">...</item>
   <!-- Go/commit button icon -->
   <item name="goIcon">...</item>
   <!-- Voice search button icon -->
   <item name="voiceIcon">...</item>
   <!-- Commit icon shown in the query suggestion row -->
   <item name="commitIcon">...</item>
   <!-- Layout for query suggestion rows -->
   <item name="suggestionRowLayout">...</item>
</style>