17

独自のHoloテーマを生成するために、 「 Android ActionBarStyleGenerator」を使用しました。次に、アクションバーに2つのアイコンを追加しました。1つはsearchFilter用、もう1つはファイルピッカー用です。どちらのアイコンも白です。ファイルピッカーアイコン(右側)は見栄えがしますが、どういうわけか検索アイコンは濃い灰色に見えます。検索テキストビューで入力すると、閉じるボタンも濃い灰色になります。

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

2つのアクションを持つActionBar

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

更新:アプリが自分のアイコンを使用していると思いましたが、使用していません。デフォルトの検索ビューアイコンを使用しているので、実際には、検索ビューのデフォルトアイコンを変更するにはどうすればよいですか?menu.xmlファイルのこの文は機能していません:

android:icon="@drawable/selectable_header_search"
4

6 に答える 6

18

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

しかし、あなたの問題は間違ったテーマから継承したことが原因だと思います。android:Theme.Holo.Light.DarkActionBarテーマのベースとしてご利用ください。次に、アクション バーの既定のアイコンは明るい色にする必要があります。

<style name="AppTheme" parent="android:Theme.Holo.Light.DarkActionBar">
    ...
</style> 
于 2013-01-17T09:23:01.373 に答える
0

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

<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>

で SearchView のスタイルを定義し、検索ボックスのテキストの色を設定できるようにsearchViewStyleなり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
于 2016-10-18T02:41:41.460 に答える
0

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

于 2013-08-21T14:47:15.077 に答える
-2

私のように本当にアイコンを変更する方法を見つけたいと思っている人は、これを actionbar sherlock で使用できます。

        // Getting the 'search_icon'
        ImageView searchIcon = (ImageView)searchView.findViewById(R.id.abs__search_button);
        // Setting background of 'search_plate' to earlier defined drawable.
        searchIcon.setImageResource(R.drawable.search_button_selector); 

android:icon関連するフィールドがプライベートに設定されているため、デフォルトのものを共通の方法で変更することはできません。

于 2013-05-29T14:56:20.900 に答える