2016-04-28 10 views
1

ActionBarでSearchViewのスタイルを設定しようとしています。 私は、具体的SearchViewを持っていますが、私はSearchViewのActionViewはウィンドウを含むテーマ設定を無視します

"#windowid[platform=android]":{ 
    theme:'customTheme' 
} 

と、ウィンドウの作成時にスタイルを設定した場合でもSearchViewが実際にそれを無視するビューのスタイルを作成しました。ウィンドウの他のすべての要素は、SearchView以外にも色付けされています。

回避策はありますか?

おかげ アレックス

MOREの情報を提供するために、EDIT:

は、これは私がTSSファイルでSearchView

var search = Ti.UI.Android.createSearchView({ 
    hintText: args.hintText, 
    iconifiedByDefault:false, 
    iconified:false, 
    //backgroundColor:'white' 
    width:Ti.UI.FILL, 
    softKeyboardOnFocus:Titanium.UI.Android.SOFT_KEYBOARD_SHOW_ON_FOCUS 
}); 
$.ricercaFermata.softKeyboardOnFocus=Titanium.UI.Android.SOFT_KEYBOARD_SHOW_ON_FOCUS; 
$.ricercaFermata.addEventListener('open', function (e) { 
    var abx = require('com.alcoapps.actionbarextras'); 
    var actionBar = e.source.activity.actionBar; 
    if (actionBar) { 
     actionBar.displayHomeAsUp = true; 
     actionBar.onHomeIconItemSelected = function() { 
      chiudi(); 
     }; 
    } 
    e.source.activity.onCreateOptionsMenu = function(ev) { 
     var menu = ev.menu; 
     Ti.API.info('this menu '+menu); 
     var menuItem = menu.add({ 
      title : "Cerca", 
      actionView:search, 
      showAsAction : Ti.Android.SHOW_AS_ACTION_ALWAYS 
     }); 
     abx.setSearchView({ 
      searchView: search, 
      backgroundColor: Alloy.CFG.colorePrincipale, 
      textColor: 'white', 
      hintColor: 'white', 
     }); 
    }; 
    e.source.activity.invalidateOptionsMenu(); 
}); 

を追加jsのファイル内のコードである私は、コードを使用してI正しいテーマを示す前に投稿されています。

これはcustom_theme.xmlファイルの内容です:

<?xml version="1.0" encoding="utf-8"?> 
<resources> 

<style name="checkTheme" parent="@style/Theme.AppCompat.Light"> 
    <item name="colorPrimary">#F2660D</item> 
    <!--<item name="colorPrimary">#00517D</item>--> 
    <item name="colorPrimaryDark">#00517D</item> 
    <item name="colorAccent">#F2660D</item> 
    <item name="colorControlNormal">#F2660D</item> 
    <item name="colorControlActivated">#F2660D</item> 
    <item name="colorControlHighlight">#F2660D</item> 
    <item name="colorSwitchThumbNormal">#00517D</item> 
    <item name="android:colorButtonNormal">#00517D</item> 
    <item name="android:colorEdgeEffect">#00517D</item> 
    <item name="android:buttonTint">#00517D</item> 
    <!--<item name="android:windowActionBarOverlay">true</item>--> 
    <!-- Support library compatibility --> 
    <!--<item name="windowActionBarOverlay">true</item>--> 
    <item name="android:textColorPrimary">#FFFFFF</item> 
    <item name="android:textColorSecondary">#F2660D</item> 
    <!-- Support library compatibility --> 
    <!--<item name="textColorPrimary">#1565C0</item>--> 
    <item name="drawerArrowStyle">@style/DrawerArrowStyle</item> 
    <item name="android:actionMenuTextColor">#FFFFFF</item> 
    <item name="actionMenuTextColor">#FFFFFF</item> 
    <item name="android:itemTextAppearance">@style/myCustomMenuTextApearance</item> 
    <item name="android:progressBarStyle">@style/test</item> 
    <item name="android:windowContentOverlay">@null</item> 
    <item name="actionBarStyle">@style/Myactionbar</item> 
    <item name="android:editTextStyle">@style/Widget.EditText.Color</item> 
    <!--<item name="android:searchViewStyle">@style/AppTheme.SearchView</item> 
    <item name="searchViewStyle">@style/AppTheme.SearchView</item>--> 
    <item name="android:datePickerDialogTheme">@style/MyDatePickerDialogTheme</item> 
    <item name="android:timePickerDialogTheme">@style/MyTimePickerDialogTheme</item> 
    <item name="alertDialogTheme">@style/AppCompatAlertDialogStyle</item> 
    <!--<item name="android:checkboxStyle">@style/CheckBox</item>--> 
</style> 
<style name="materialTheme" parent="@style/Theme.AppCompat.Light"> 
    <item name="colorPrimary">#00517D</item> 
    <item name="colorPrimaryDark">#00517D</item> 
    <item name="colorAccent">#F2660D</item> 
    <item name="colorControlNormal">#ffffff</item> 
    <item name="colorControlActivated">#F2660D</item> 
    <item name="colorControlHighlight">#F2660D</item> 
    <item name="colorSwitchThumbNormal">#00517D</item> 
    <item name="android:colorButtonNormal">#00517D</item> 
    <item name="android:colorEdgeEffect">#00517D</item> 
    <item name="android:buttonTint">#00517D</item> 
    <!--<item name="android:windowActionBarOverlay">true</item>--> 
    <!-- Support library compatibility --> 
    <!--<item name="windowActionBarOverlay">true</item>--> 
    <item name="android:textColorPrimary">#FFFFFF</item> 
    <item name="android:textColorSecondary">#F2660D</item> 
    <!-- Support library compatibility --> 
    <!--<item name="textColorPrimary">#1565C0</item>--> 
    <item name="drawerArrowStyle">@style/DrawerArrowStyle</item> 
    <item name="android:actionMenuTextColor">#FFFFFF</item> 
    <item name="actionMenuTextColor">#FFFFFF</item> 
    <item name="android:itemTextAppearance">@style/myCustomMenuTextApearance</item> 
    <item name="android:progressBarStyle">@style/test</item> 
    <item name="android:windowContentOverlay">@null</item> 
    <item name="actionBarStyle">@style/Myactionbar</item> 
    <item name="android:editTextStyle">@style/Widget.EditText.Color</item> 
    <!--<item name="android:searchViewStyle">@style/AppTheme.SearchView</item>--> 
    <item name="android:datePickerDialogTheme">@style/MyDatePickerDialogTheme</item> 
    <item name="android:timePickerDialogTheme">@style/MyTimePickerDialogTheme</item> 
    <item name="alertDialogTheme">@style/AppCompatAlertDialogStyle</item> 
    <!--<item name="android:checkboxStyle">@style/CheckBox</item>--> 
</style> 
<style name="CheckBox" parent="@android:style/Widget.CompoundButton.CheckBox"> 
    <!--<item name="android:background">@drawable/checkbox_bg</item> 
    <item name="android:button">@drawable/checkbox_custom_states</item>--> 
    <item name="colorControlNormal">#F2660D</item> 
</style> 
<style name="MyDatePickerDialogTheme" parent="Theme.AppCompat.Light.Dialog"> 
    <item name="colorAccent">#00517D</item> 
    <item name="android:textColorPrimary">#00517D</item> 
    <item name="android:datePickerStyle">@style/MyDatePickerStyle</item> 
</style> 
<style name="MyTimePickerDialogTheme" parent="Theme.AppCompat.Light.Dialog"> 
    <item name="colorAccent">#00517D</item> 
    <item name="colorPrimary">#00517D</item> 
    <item name="android:textColorPrimary">#00517D</item> 
    <item name="android:timePickerStyle">@style/MyTimePickerStyle</item> 
</style> 
<style name="MyDatePickerStyle" parent="@android:style/Widget.Material.Light.DatePicker"> 
    <item name="android:headerBackground">#00517D</item> 
    <item name="android:calendarTextColor">#00517D</item> 
    <item name="android:dayOfWeekBackground">#00517D</item> 
    <item name="android:yearListSelectorColor">#F2660D</item> 
    <item name="android:datePickerMode">calendar</item> 
    <item name="android:minDate">01/01/2000</item> 
</style> 
<style name="MyTimePickerStyle" parent="@android:style/Widget.Material.Light.TimePicker"> 
    <item name="android:headerBackground">#00517D</item> 
    <item name="android:calendarTextColor">#00517D</item> 
    <item name="android:dayOfWeekBackground">#00517D</item> 
    <item name="android:yearListSelectorColor">#00517D</item> 
</style> 

<style name="AppTheme.SearchView" parent="@android:style/Widget.Material.Light.SearchView"> 
    <item name="colorControlNormal">#ff0000</item> 
    <item name="android:textColor">#ffffff</item> 
</style> 

<style name="test" parent="Widget.AppCompat.ProgressBar"> 
    <item name="android:progressTint">#F2660D</item> 
</style> 

<style name="Myactionbar" parent="Widget.AppCompat.ActionBar.Solid"> 
    <item name="android:elevation">0dp</item> 
    <item name="elevation">0dp</item> 
</style> 

<style name="DrawerArrowStyle" parent="Widget.AppCompat.DrawerArrowToggle"> 
    <item name="spinBars">true</item> 
    <item name="color">#FFFFFF</item> 
</style> 
<style name="myCustomMenuTextApearance" parent="@android:style/TextAppearance.Widget.IconMenu.Item"> 
    <item name="android:textColor">#FFFFFF</item> 
</style> 
<style name="Widget.EditText.Color" parent="@android:style/Widget.EditText"> 
    <item name="android:textColor">#00517D</item> 
</style> 
<style name="AppCompatAlertDialogStyle" parent="Theme.AppCompat.Light.Dialog.Alert"> 
    <item name="colorAccent">#00517D</item> 
    <item name="android:textColorPrimary">#00517D</item> 
    <!--<item name="android:background">#5fa3d0</item>--> 
</style> 
</resources> 

は基本的には、メインテーマは、私が選択されていないときアンドロイド4つのデバイスのチェックボックスを着色するcheckThemeを使用(またはそれらが白く見える)、materialThemeです。

materialThemeでは、SearchViewの拡大アイコンが白ですが、メインテーマcheckThemeとして設定すると、拡大鏡はオレンジ色になります。 materialThemeのSearchViewでウィンドウのテーマを変更した場合、拡大鏡はオレンジ色のままで、期待どおりに白くなりません。

最高で問題を説明してくれることを祈っています。ありがとう!

答えて

0

SearchViewとテーマファイルのソースを追加する方法について、いくつかのコードを教えてください。

また、SearchViewがデバイスでどのように見えるかをスクリーンショットで送信できます...(あまり評判がないので、申し訳ありませんがコメントに投稿できません)。

+0

メインの投稿にいくつかの情報を追加しました。ご協力いただきありがとうございます! – LimeLab

+0

あなたが追加したテーマはたくさんあります。 :) 明日のデモアプリであなたのソースコードをチェックする必要があります。私の次のメッセージを待つか、それまで自分自身で見つけることを願っています。 –

関連する問題