プロジェクトでSearchViewを使用したいのですが、要素の色に問題があります。表示させてください:SearchViewがあるfragmentDialog
Bgの色を変更する必要はありません。次の写真はその一例です。黒い背景なしでSearchView要素を表示したい。
私はしようとしました
しかし、何も機能していません。検索アイコンと注釈要素はまだ白です。たぶん私は何かを失っていますか? XMLでこれを行うことはできますか?私を助けてください。
Android.support.v7.widget.SearchViewを使用する必要があります
検索ビューでこのスタイルを試してみてください。
Searchviewを展開した後--->
<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>
この回答では、SearchView
がToolbar
内に追加され、AppTheme
がTheme.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" />
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);
これらの線をスタイルに追加してみてください。
Android:textColorPrimary
は、ユーザーがEditTextに入力するテキストを変更します。 Android:textColorSecondary
は、ヒントの前に戻る矢印、「テキストを削除」クロス、および小さな検索アイコンを変更します。
<item name="Android:textColorPrimary">@color/white</item>
<item name="Android:textColorSecondary">@color/white</item>
サポートライブラリに付属する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=""
>
それで、私の問題は何でしたか。 Android.support.v7.widget.SearchViewの代わりにAndroid.widget.SearchViewを使用しました。 SearchViewを変更し、提案されたソリューションが機能し始めた後。
誰かがスタイルやさまざまなものが機能しなかった理由を説明したり、リンクを教えてくれたりできれば、ありがたいです。
`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" />