我正在做一个个人主题,在2.3 android中使用holo小部件。
我这样做了:
<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并且它工作..所以问题是该主题不适用。
任何想法?
更新:主题应用并且工作良好..独奏问题是在标准主题中显示的对话框中的一些edittext
答案 0 :(得分:2)
要在API 10
及以下的应用中获取全息主题样式,您可以使用HoloEverywhere
。它与ActionBarSherlock
很好地集成在一起。 ActionBarSherlock
包含在子项目中。 https://github.com/ChristopheVersieux/HoloEverywhere
答案 1 :(得分:1)
如果要使用自定义主题,则必须在应用程序主题中设置这些样式属性。然后通过在清单中定义它或在onCreate()方法中将其设置为programmaticaly,将此主题应用于整个App或单个Activity。
例如(对于ABS):
<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>
然后将此主题设置为您的应用程序或您在Manifest中的Activity:
android:theme="@style/Theme.myStyle"
或以编程方式:
setTheme(R.style.Theme.myStyle);