如何更改/删除SearchView建议中的时钟图标

4
我原来使用的是黑色建议布局,我将其更改为白色,并将文本颜色更改为黑色,但是我不知道如何更改/删除建议布局中的时钟图标。

enter image description here

我的样式

<style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar">
        <item name="android:dropDownListViewStyle">@style/SpinnerStyle</item>
        <item name="autoCompleteTextViewStyle">@style/myAutoCompleteTextViewStyle</item>
        <item name="textAppearanceSearchResultTitle">@style/mySearchResult</item>

    </style>

    <style name="myAutoCompleteTextViewStyle" parent="Widget.AppCompat.Light.AutoCompleteTextView">
        <item name="android:popupBackground">#ffffff</item>
    </style>

    <style name="mySearchResult" parent="TextAppearance.AppCompat.SearchResult.Title">
        <item name="android:textColor">#000000</item>
    </style>
    <style name="SpinnerStyle" parent="Widget.AppCompat.ListView.DropDown">
        <item name="android:divider">#d1d1d1</item>
        <item name="android:dividerHeight">0.5dp</item>
    </style>

编辑 我正在使用这里提供的搜索视图最近搜索建议https://developer.android.com/guide/topics/search/adding-recent-query-suggestions.html


你正在使用自定义适配器吗? - Nouman Shah
@NoumanShah,不,我没有使用自定义适配器。 - X09
1个回答

2
您可以使用一些修改 this 布局的方法来获得所需的效果。这不是很好的方式,但它是有效的。
将此代码复制到文件中,并给它任何名称,例如 custom_search_suggestion.xml
<?xml version="1.0" encoding="utf-8"?>
<!--
/*
 * Copyright (C) 2014 The Android Open Source Project
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
-->
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
                android:layout_width="match_parent"
                android:layout_height="58dip"
                style="@style/RtlOverlay.Widget.AppCompat.Search.DropDown">
    <!-- Icons come first in the layout, since their placement doesn't depend on
         the placement of the text views. -->
    <ImageView
               android:id="@android:id/icon1"
               android:layout_width="@dimen/abc_dropdownitem_icon_width"
               android:layout_height="48dip"
               android:scaleType="centerInside"
               android:layout_alignParentTop="true"
               android:layout_alignParentBottom="true"
               android:visibility="invisible"
               style="@style/RtlOverlay.Widget.AppCompat.Search.DropDown.Icon1" />
    <ImageView
               android:id="@+id/edit_query"
               android:layout_width="48dip"
               android:layout_height="48dip"
               android:scaleType="centerInside"
               android:layout_alignParentTop="true"
               android:layout_alignParentBottom="true"
               android:background="?attr/selectableItemBackground"
               android:visibility="gone"
               style="@style/RtlOverlay.Widget.AppCompat.Search.DropDown.Query" />
    <ImageView
               android:id="@id/android:icon2"
               android:layout_width="48dip"
               android:layout_height="48dip"
               android:scaleType="centerInside"
               android:layout_alignWithParentIfMissing="true"
               android:layout_alignParentTop="true"
               android:layout_alignParentBottom="true"
               android:visibility="gone"
               style="@style/RtlOverlay.Widget.AppCompat.Search.DropDown.Icon2" />
    <!-- The subtitle comes before the title, since the height of the title depends on whether the
         subtitle is visible or gone. -->
    <TextView android:id="@android:id/text2"
              style="?android:attr/dropDownItemStyle"
              android:textAppearance="?attr/textAppearanceSearchResultSubtitle"
              android:singleLine="true"
              android:layout_width="match_parent"
              android:layout_height="29dip"
              android:paddingBottom="4dip"
              android:gravity="top"
              android:layout_alignWithParentIfMissing="true"
              android:layout_alignParentBottom="true"
              android:visibility="gone" />
    <!-- The title is placed above the subtitle, if there is one. If there is no
         subtitle, it fills the parent. -->
    <TextView android:id="@android:id/text1"
              style="?android:attr/dropDownItemStyle"
              android:textAppearance="?attr/textAppearanceSearchResultTitle"
              android:singleLine="true"
              android:layout_width="match_parent"
              android:layout_height="wrap_content"
              android:layout_centerVertical="true"
              android:layout_above="@android:id/text2" />
</RelativeLayout>

将这段代码改变。
<ImageView
               android:id="@android:id/icon1"
               android:layout_width="@dimen/abc_dropdownitem_icon_width"
               android:layout_height="48dip"
               android:scaleType="centerInside"
               android:layout_alignParentTop="true"
               android:layout_alignParentBottom="true"
               android:visibility="invisible"
              style="@style/RtlOverlay.Widget.AppCompat.Search.DropDown.Icon1" />

转换为:

<ImageView
           android:id="@android:id/icon1"
           android:layout_width="0dip"
           android:layout_height="0dip"
           android:scaleType="centerInside"
           android:layout_alignParentTop="true"
           android:layout_alignParentBottom="true"
           android:visibility="invisible"
           style="@style/RtlOverlay.Widget.AppCompat.Search.DropDown.Icon1" />

它的意思是,我们将高度和宽度改为零值,这样它就不会出现在建议列表中。
最后将其设置为您的SearchView
<android.support.v7.widget.SearchView
        android:id="@+id/sv_search"
        android:layout_width="match_parent"
        android:layout_height="32dp"
        app:iconifiedByDefault="false"
<!-- HERE -->
        app:suggestionRowLayout="@layout/include_search_suggestion_item"
        app:searchIcon="@null"
        app:searchHintIcon="@null"
        app:queryHint="@string/search"
        android:background="#F3F3F3"
        app:queryBackground="@android:color/transparent"/>

"它会奏效的。"

enter image description here

如果您知道更合适的解决方案,请在下面的评论中发表。谢谢!

顺便说一下,您可以根据需要修改此布局以获得所需的外观。 - Александр Антипов

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接