web-dev-qa-db-ja.com

SearchViewのデフォルトアイコンを変更する方法

自分のHoloテーマを生成するために、「 Android Action Bar Style Generator 」を使用しました。次に、2つのアイコンをアクションバーに追加しました。1つはsearchFilter用、もう1つはファイルピッカー用です両方のアイコンは白です。ファイルピッカーアイコン(右側)は適切に見えますが、検索アイコンが濃い灰色に見えます。検索テキストビューに入力すると、閉じるボタンも濃い灰色に見えます。

アクションバーの色とsearchviewの色を変更しようとしましたが、成功しませんでした。検索ビューにこの色が表示されるのはなぜですか?どうすれば変更できますか?

ActionBar with two actions

どうもありがとうございました。

[〜#〜] update [〜#〜]:アプリがアイコンを使用していると思いましたが、使用していません。デフォルトの検索を使用していますアイコンを表示するので、私の質問は実際には、検索ビューのデフォルトのアイコンを変更するにはどうすればよいですか? menu.xmlファイルの次の文は機能していません。

Android:icon="@drawable/selectable_header_search"
16
jmhostalet

残念ながら、テーマ属性SearchViewは公開されていないため、searchViewSearchIconアイコンをカスタムドローアブルに変更する簡単な方法はありません。詳細は this 回答を参照してください。

しかし、あなたの問題は間違ったテーマから継承したことが原因だと思います。使ってください Android:Theme.Holo.Light.DarkActionBarをテーマのベースとして使用します。次に、アクションバーのデフォルトのアイコンは明るい色になります。

<style name="AppTheme" parent="Android:Theme.Holo.Light.DarkActionBar">
    ...
</style> 
18

SearchViewSearchIcon属性はパブリックではないため、次のコードを使用してアイコンを変更できます。

int searchIconId = searchView.getContext().getResources().getIdentifier("Android:id/search_button",null, null);
ImageView searchIcon = (ImageView) searchView.findViewById(searchIconId);
searchIcon.setImageResource(R.drawable........);
10
mspapant

showAsActionこのオプションで設定してみてください:* MenuItem.SHOW_AS_ACTION_COLLAPSE_ACTION_VIEW *

このオプションがないと、SearchViewはアクションボタンに設定したアイコンを取得しません。

menu.add("Search")
            .setIcon(
                    getResources().getDrawable(
                            R.drawable.selectable_header_search))
            .setActionView(searchView)
            .setShowAsAction(
                    MenuItem.SHOW_AS_ACTION_ALWAYS
                            | MenuItem.SHOW_AS_ACTION_COLLAPSE_ACTION_VIEW
                            | MenuItem.SHOW_AS_ACTION_WITH_TEXT);
6
timudgin

アクションバーのデフォルトのsearchviewアイコンを変更する最も簡単な方法は、onPrepareOptionsMenuにあります。あなたは私の答えを見ることができます ここ 同様の質問への=!

0
just_user

あなたのテーマスタイルにこれを含めてください:

<style name="YourTheme.Toolbar">
    <item name="searchViewStyle">@style/YourActionBarSearch</item>
    <item name="editTextColor">@color/your_ab_text_color</item>
    <item name="Android:textColorHint">@color/your_ab_hint_color</item>
</style>

searchViewStyleを使用してSearchViewのスタイルを定義できるようになりました。editTextColorは検索ボックスのテキストの色を設定します。設定することにより Android:textColorHintヒントの色も設定します。 "探す..."。

<style name="YourActionBarSearch" parent="@style/Widget.Holo.SearchView">
    <item name="searchIcon">@drawable/ic_ab_search</item>
    <item name="queryBackground">@null</item>
    <item name="submitBackground">@null</item>
    <item name="searchHintIcon">@drawable/ic_ab_small_search</item>
    <item name="defaultQueryHint">@string/toolbar_search_hint</item>
    <item name="closeIcon">@drawable/ic_ab_small_search_close</item>
</style>

これにより、多かれ少なかれあなたの検索ビューのスタイルが決まります。フィールドsearchIconはアクションバーのアイコンです。フィールドsearchHintIconは、検索フィールドのヒントの左側にある小さなアイコンです。フィールドcloseIconは、検索フィールドの右側にある閉じるアイコンです。

より多くのスタイル設定については、これをチェックしてください:

$Android_SDK/platforms/Android-24/data/res/values/styles_holo.xml
0
Per Löwgren