web-dev-qa-db-ja.com

SearchView要素の色を変更する方法は?

プロジェクトでSearchViewを使用したいのですが、要素の色に問題があります。表示させてください:SearchViewがあるfragmentDialog You can see what I mean here

Bgの色を変更する必要はありません。次の写真はその一例です。黒い背景なしでSearchView要素を表示したい。 The color of the elements is white

私はしようとしました

  • テーマを変更
  • スタイルを変える
  • 色合いを変える

しかし、何も機能していません。検索アイコンと注釈要素はまだ白です。たぶん私は何かを失っていますか? XMLでこれを行うことはできますか?私を助けてください。

13
Alex Smith

Android.support.v7.widget.SearchViewを使用する必要があります

検索ビューでこのスタイルを試してみてください。

Searchviewを展開する前に---> enter image description here

Searchviewを展開した後--->

enter image description here

<Android.support.v7.widget.SearchView xmlns:Android="http://schemas.Android.com/apk/res/Android"
            Android:id="@+id/search_view"
            style="@style/SearchViewStyle"
            Android:layout_width="wrap_content"
            Android:layout_height="wrap_content"
            Android:layout_alignParentEnd="true"
            Android:layout_centerVertical="true"
            Android:layout_gravity="end" />

<style name="SearchViewStyle" parent="Widget.AppCompat.SearchView">
    <!-- Gets rid of the search icon -->
    <item name="searchIcon">@drawable/ic_search</item>
    <!-- Gets rid of the "underline" in the text -->
    <item name="queryBackground">@color/white</item>
    <!-- Gets rid of the search icon when the SearchView is expanded -->
    <item name="searchHintIcon">@null</item>
    <!-- The hint text that appears when the user has not typed anything -->
    <item name="queryHint">@string/search_hint</item>
</style>
21
Bhavnik

この回答では、SearchViewToolbar内に追加され、AppThemeTheme.AppCompat.Light.NoActionBarの子であると仮定しています

<style name="AppTheme.Toolbar" parent="AppTheme">
    <!--This line changes the color of text in Toolbar-->
    <item name="Android:textColorPrimary">@color/green</item>
    <!--This line changes the color of icons in toolbar (back, overflow menu icons)-->
    <item name="Android:textColorSecondary">@color/green</item>
</style>

ツールバーのテーマとしてAppTheme.Toolbarを使用します。

<Android.support.v7.widget.Toolbar
    Android:id="@+id/toolbar"
    Android:layout_width="match_parent"
    Android:layout_height="?attr/actionBarSize"
    Android:background="?attr/colorPrimary"
    app:popupTheme="@style/AppTheme.PopupOverlay"
    app:theme="@style/AppTheme.Toolbar" />
34
int searchiconId = view.getContext().getResources().getIdentifier("Android:id/search_button",null,null);
ImageView imgView = (ImageView)findViewById(searchiconId);
Drawable whiteIcon = img.getDrawable();
whiteIcon.setTint(Color.RED); //Whatever color you want it to be
img.setImageDrawable(whiteIcon);
5
TheLastBorn

これらの線をスタイルに追加してみてください。

Android:textColorPrimaryは、ユーザーがEditTextに入力するテキストを変更します。 Android:textColorSecondaryは、ヒントの前に戻る矢印、「テキストを削除」クロス、および小さな検索アイコンを変更します。

<item name="Android:textColorPrimary">@color/white</item>
<item name="Android:textColorSecondary">@color/white</item>
4
Oleksandr Nos

サポートライブラリに付属するSearchviewには、アイコンを変更する機能があります

<androidx.appcompat.widget.SearchView
            Android:layout_width="wrap_content"
            Android:layout_height="wrap_content"
            app:searchIcon="@drawable/ic_search"
            app:closeIcon="@drawable/ic_close_black"
            app:commitIcon=""
            app:goIcon=""
            app:searchHintIcon=""
            app:voiceIcon=""
    >
1
Praveena

それで、私の問題は何でしたか。 Android.support.v7.widget.SearchViewの代わりにAndroid.widget.SearchViewを使用しました。 SearchViewを変更し、提案されたソリューションが機能し始めた後。

誰かがスタイルやさまざまなものが機能しなかった理由を説明したり、リンクを教えてくれたりできれば、ありがたいです。

1
Alex Smith

`styles.xml 'のコスチュームスタイルで検索ビューを変更できます。

<style name="AppSearchView" parent="Widget.AppCompat.SearchView" >
    <!-- Text Size -->
    <item name="Android:textSize">@dimen/textSizePrimary</item>
    <!-- Query Text Color -->
    <item name="Android:textColorPrimary">@color/textColorPrimary</item>
    <!-- Hint Color -->
    <item name="Android:textColorHint">@color/textColorDisabled</item>
    <!-- Icon Color -->
    <item name="Android:tint">@color/textColorPrimary</item>
</style>

次に、検索ビューでこのスタイルを使用します。

<Android.support.v7.widget.SearchView
    Android:layout_width="match_parent"
    Android:layout_height="wrap_content"
    ...
    app:theme="@style/AppSearchView" />
0
Armin