Пользовательская тема и sherlockActionBar

Я делаю личную тему, чтобы использовать голографический виджет в Android 2.3.

Я сделал это:

 <resources xmlns:android="http://schemas.android.com/apk/res/android">

  <style name="AppThemes" parent="@style/Theme.Sherlock">

    <item name="android:editTextStyle">@style/EditTextAppTheme</item>

    <item name="android:checkboxStyle">@style/CheckBoxAppTheme</item>

    <item name="android:radioButtonStyle">@style/RadioButtonAppTheme</item>

    <item name="android:buttonStyle">@style/ButtonAppTheme</item>

    <item name="android:imageButtonStyle">@style/ImageButtonAppTheme</item>

    <item name="android:spinnerStyle">@style/SpinnerAppTheme</item>

    <item name="android:dropDownSpinnerStyle">@style/SpinnerAppTheme.DropDown</item>

    <item name="android:spinnerDropDownItemStyle">@style/SpinnerDropDownItemAppTheme</item>

  </style>

</resources>

проблема в том, что виджеты принимают не правильный стиль, а стиль по умолчанию. Я попытался принудительно назначить @style/EditTextAppTheme в тексте редактирования, и это сработало ... так что проблема в том, что тема не применяется.

любая идея?

обновление: тема применяется и работает хорошо. Соло-проблема заключается в некотором тексте редактирования внутри диалогового окна, которое отображается со стандартной темой.


person Atomico    schedule 14.11.2012    source источник


Ответы (2)


Чтобы получить стиль голографической темы в приложении для API 10 и ниже, вы можете использовать HoloEverywhere. Он хорошо интегрирован с ActionBarSherlock. ActionBarSherlock включен как подпроект. https://github.com/ChristopheVersieux/HoloEverywhere

person Binoy Babu    schedule 14.11.2012

Если вы хотите использовать настраиваемую тему, вы должны установить эти атрибуты стиля в своей теме приложения. Затем примените эту тему ко всему приложению или к отдельному действию, определив его в манифесте или установив его программно в методе onCreate().

Например (для АБС):

<style name="Theme.myStyle" parent="Theme.Sherlock">
<item name="android:editTextStyle">@style/EditTextAppTheme</item>

<item name="android:checkboxStyle">@style/CheckBoxAppTheme</item>

<item name="android:radioButtonStyle">@style/RadioButtonAppTheme</item>

<item name="android:buttonStyle">@style/ButtonAppTheme</item>

<item name="android:imageButtonStyle">@style/ImageButtonAppTheme</item>

<item name="android:spinnerStyle">@style/SpinnerAppTheme</item>

<item name="android:dropDownSpinnerStyle">@style/SpinnerAppTheme.DropDown</item>

<item name="android:spinnerDropDownItemStyle">@style/SpinnerDropDownItemAppTheme</item>
</style>

А затем установите эту тему в свое приложение или свою активность в манифесте с помощью:

 android:theme="@style/Theme.myStyle" 

или программно:

setTheme(R.style.Theme.myStyle);
person Ahmad    schedule 14.11.2012
comment
‹application android:icon=@drawable/ic_launcher android:label=@string/app_name android:theme=@style/AppThemes › - person Atomico; 15.11.2012
comment
Возможно, вы установили другую тему для своей деятельности. - person Ahmad; 15.11.2012
comment
нет, только на теге приложения. (вот почему я создал эту тему :D) - person Atomico; 15.11.2012
comment
хм, это действительно странно :D - person Ahmad; 15.11.2012
comment
я добавил новую вещь в свой исходный вопрос - person Atomico; 15.11.2012