2016-06-25 6 views
0

私はSearchViewのテーマに本当に挑戦してきました。私のmin APIもsdk 21なので、新しいスタイリングオプションを使用できるはずです。Android:テーマに見えないSearchView

具体的には、私がテーマ-できるようにするには、検索アイコンをクリックすると表示されるアプリ内バーのテキストフィールドをしたいです。私は最終的に背景を白にし、テキスト/カーソルを青または黒にしたい。

ここは私のstyles.xmlです。最後のテーマは私が取り組んでいる新しいSearchThemeです。実際の値は重要ではありません。変化を起こそうとしただけで投げ捨てたゴミ値です。

<!-- Base application theme. --> 
<style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar"> 
    <!-- Customize your theme here. --> 
    <item name="colorPrimary">@color/colorPrimary</item> 
    <item name="colorPrimaryDark">@color/colorPrimaryDark</item> 
    <item name="colorAccent">@color/colorAccent</item> 
    <item name="android:windowBackground">@android:color/white</item> 
    <item name="android:searchViewStyle">@style/AppTheme.SearchTheme</item> 
</style> 

<style name="AppTheme.NoActionBar"> 
    <item name="windowActionBar">false</item> 
    <item name="windowNoTitle">true</item> 
</style> 

<style name="AppTheme.PreferencesTheme" parent="AppTheme"> 
    <item name="android:windowBackground">@android:color/white</item> 
</style> 

<style name="AppTheme.AppBarOverlay" parent="ThemeOverlay.AppCompat.Dark.ActionBar"> 
    <item name="android:windowBackground">@android:color/white</item> 
    <item name="android:searchViewStyle">@style/AppTheme.SearchTheme</item> 
</style> 

<style name="AppTheme.PopupOverlay" parent="ThemeOverlay.AppCompat.Light"> 
    <item name="android:windowBackground">@android:color/white</item> 
    <item name="android:searchViewStyle">@style/AppTheme.SearchTheme</item> 
</style> 

<style name="AppTheme.SearchTheme" parent="Theme.AppCompat.Light"> 
    <item name="android:closeIcon">@drawable/contacts5icon</item> 
    <item name="android:voiceIcon">@drawable/contacts5icon</item> 
    <item name="android:queryBackground">@android:color/black</item> 
    <item name="android:windowBackground">@android:color/white</item> 
</style> 

私は私のレイアウトで使用している他の主要テーマにAppTheme.SearchThemeを割り当てました。しかし、私は何も効果がないようです。値は変化していないようです。

ここをクリックしてください。以前はAndroidのテーマをあまり気にしていなかったので、少し失われてしまいました。ありがとう。

答えて

0

これは、あなたがクリスBanes徒歩スルー前ロリポップアンドロイドに材料設計を使用するごとに、正しい軌道に乗って得るのを助ける必要があります。あなたのために、簡単に言えば、Widget.AppCompat.SearchViewスタイル拡張を使用して、メインスタイルの項目プロパティsearchViewStyleを設定します。

テキストフィールドの背景を変更するためqueryBackgroundアイテムのプロパティを使用することができます。その他のプロパティについては以下で詳しく説明します。

<style name=”Theme.MyTheme” parent=”Theme.AppCompat”> 
<item name=”searchViewStyle”>@style/MySearchViewStyle</item> 
</style> 
<style name=”MySearchViewStyle” parent=”Widget.AppCompat.SearchView”> 
<!-- Background for the search query section (e.g. EditText) --> 
<item name="queryBackground">...</item> 
<!-- Background for the actions section (e.g. voice, submit) --> 
<item name="submitBackground">...</item> 
<!-- Close button icon --> 
<item name="closeIcon">...</item> 
<!-- Search button icon --> 
<item name="searchIcon">...</item> 
<!-- Go/commit button icon --> 
<item name="goIcon">...</item> 
<!-- Voice search button icon --> 
<item name="voiceIcon">...</item> 
<!-- Commit icon shown in the query suggestion row --> 
<item name="commitIcon">...</item> 
<!-- Layout for query suggestion rows --> 
<item name="suggestionRowLayout">...</item> 
</style> 

よりhere

+0

正直なところ、私は百万回のすべてを試みたが、どこに行くことができませんでした。何が間違っているのか分かりません。とにかく、私はちょうどそれを心配するのをやめるためにデフォルトの外観を解決することにしました。しかし、真剣に、例えば、queryBackgroundは何も変更しません。 – user2223059

関連する問題