Android 主题在迁移到 android studio 后未应用于 API v19(但应用于 API v21)

Android theme not applied on API v19 after migration to android studio (but is applied on API v21)

我最近从 Eclipse 迁移到了 Android Studio。现在我的自定义主题不再适用于 API21 以下的设备。不完全确定,但我想我在迁移时没有改变我的风格。

我有的是: (不要怀疑重复,我有两个用户可选择的主题)

themes.xml:

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

<style name="AppTheme" parent="Theme.AppCompat.Light">
    <item name="colorPrimary">@color/theme_color</item>
    <item name="colorPrimaryDark">@color/theme_color_dark</item>
    <item name="colorAccent">@color/theme_color_accent</item>
    <item name="android:editTextStyle">@style/EditTextTheme</item>
    <item name="android:textColorHighlight">#99335a9d</item>
    <item name="android:autoCompleteTextViewStyle">@style/AutoCompleteTextViewTheme</item>
    <item name="android:checkboxStyle">@style/CheckBoxTheme</item>
    <item name="android:radioButtonStyle">@style/RadioButtonTheme</item>
    <item name="android:buttonStyle">@style/ButtonTheme</item>
    <item name="android:imageButtonStyle">@style/ImageButtonTheme</item>
    <item name="android:spinnerStyle">@style/SpinnerTheme</item>
    <item name="android:spinnerDropDownItemStyle">@style/SpinnerDropDownItemTheme</item>
    <item name="android:progressBarStyleHorizontal">@style/ProgressBarTheme</item>
    <item name="android:seekBarStyle">@style/SeekBarTheme</item>
    <item name="android:buttonStyleToggle">@style/ToggleTheme</item>
    <item name="android:listViewStyle">@style/ListViewTheme</item>
    <item name="android:spinnerItemStyle">@style/SpinnerItemTheme</item>
    <item name="android:alertDialogTheme">@style/AlertDialog</item>
</style>

<style name="AppThemeDark" parent="Theme.AppCompat">
    <item name="colorPrimary">@color/theme_color</item>
    <item name="colorPrimaryDark">@color/theme_color_dark</item>
    <item name="colorAccent">@color/theme_color_accent</item>
    <item name="android:editTextStyle">@style/EditTextTheme</item>
    <item name="android:textColorHighlight">#99335a9d</item>
    <item name="android:autoCompleteTextViewStyle">@style/AutoCompleteTextViewTheme</item>
    <item name="android:checkboxStyle">@style/CheckBoxTheme</item>
    <item name="android:radioButtonStyle">@style/RadioButtonTheme</item>
    <item name="android:buttonStyle">@style/ButtonThemeDark</item>
    <item name="android:imageButtonStyle">@style/ImageButtonTheme</item>
    <item name="android:spinnerStyle">@style/SpinnerTheme</item>
    <item name="android:spinnerDropDownItemStyle">@style/SpinnerDropDownItemTheme</item>
    <item name="android:progressBarStyleHorizontal">@style/ProgressBarTheme</item>
    <item name="android:seekBarStyle">@style/SeekBarTheme</item>
    <item name="android:buttonStyleToggle">@style/ToggleTheme</item>
    <item name="android:listViewStyle">@style/ListViewTheme</item>
    <item name="android:spinnerItemStyle">@style/SpinnerItemTheme</item>
    <item name="android:alertDialogTheme">@style/AlertDialogDark</item>
</style>

styles.xml

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

<style name="EditTextTheme" parent="android:Widget.EditText">
    <item name="android:background">@drawable/theme_edit_text_holo_light</item>
</style>

<style name="AutoCompleteTextViewTheme" parent="android:Widget.AutoCompleteTextView"></style>

<style name="CheckBoxTheme" parent="android:Widget.CompoundButton.CheckBox">
    <item name="android:button">@drawable/theme_btn_check_holo_light</item>
</style>

<style name="RadioButtonTheme" parent="android:Widget.CompoundButton.RadioButton">
    <item name="android:button">@drawable/theme_btn_radio_holo_light</item>
</style>

<style name="ButtonTheme" parent="android:Widget.Button">
    <item name="android:background">@drawable/theme_btn_default_holo_light</item>
    <item name="android:minHeight">48dip</item>
    <item name="android:minWidth">64dip</item>
</style>

<style name="ButtonThemeDark" parent="android:Widget.Button">
    <item name="android:background">@drawable/theme_btn_default_holo_light</item>
    <item name="android:minHeight">48dip</item>
    <item name="android:minWidth">64dip</item>
    <item name="android:textColor">@color/white_color</item>
</style>

<style name="ImageButtonTheme" parent="android:Widget.ImageButton">
    <item name="android:background">@drawable/theme_btn_default_holo_light</item>
</style>

<style name="SpinnerTheme" parent="android:Widget.Spinner">
    <item name="android:background">@drawable/theme_spinner_background_holo_light</item>
    <item name="android:dropDownSelector">@drawable/theme_list_selector_holo_light</item>
</style>

<style name="SpinnerDropDownItemTheme" parent="android:Widget.DropDownItem.Spinner">
    <item name="android:checkMark">@drawable/theme_btn_radio_holo_light</item>
</style>

<style name="TabTheme">
    <item name="android:gravity">center_horizontal</item>
    <item name="android:paddingLeft">16dip</item>
    <item name="android:paddingRight">16dip</item>
    <item name="android:background">@drawable/theme_tab_indicator_holo</item>
    <item name="android:layout_width">0dip</item>
    <item name="android:layout_weight">1</item>
    <item name="android:minWidth">80dip</item>
</style>

<style name="TabTextTheme">
    <item name="android:textSize">12sp</item>
    <item name="android:textStyle">bold</item>
    <!-- v14 <item name="android:textAllCaps">true</item> -->
    <item name="android:ellipsize">marquee</item>
    <item name="android:maxLines">2</item>
    <item name="android:maxWidth">180dip</item>
</style>

<style name="ProgressBarTheme" parent="android:Widget.ProgressBar.Horizontal">
    <item name="android:progressDrawable">@drawable/theme_progress_horizontal_holo_light
    </item>
    <item name="android:indeterminateDrawable">
        @drawable/theme_progress_indeterminate_horizontal_holo_light
    </item>
    <item name="android:minHeight">16dip</item>
    <item name="android:maxHeight">16dip</item>
</style>

<style name="SeekBarTheme" parent="android:Widget.SeekBar">
    <item name="android:progressDrawable">
        @drawable/theme_scrubber_progress_horizontal_holo_light
    </item>
    <item name="android:indeterminateDrawable">
        @drawable/theme_scrubber_progress_horizontal_holo_light
    </item>
    <item name="android:minHeight">13dip</item>
    <item name="android:maxHeight">13dip</item>
    <item name="android:thumb">@drawable/theme_scrubber_control_selector_holo_light</item>
    <item name="android:thumbOffset">16dip</item>
    <item name="android:paddingLeft">16dip</item>
    <item name="android:paddingRight">16dip</item>
</style>

<style name="ToggleTheme" parent="android:Widget.Button.Toggle">
    <item name="android:background">@drawable/theme_btn_toggle_holo_light</item>
    <item name="android:minHeight">48dip</item>
</style>

<style name="ListViewTheme" parent="android:Widget.ListView">
    <item name="android:listSelector">@drawable/theme_list_selector_holo_light</item>
</style>

<style name="SpinnerItemTheme" parent="android:TextAppearance.Widget.TextView.SpinnerItem"></style>

<style name="SwitchStyle">
    <item name="android:thumb">@drawable/theme_switch_inner_holo_light</item>
    <item name="android:track">@drawable/theme_switch_track_holo_light</item>
</style>

<style name="AlertDialog" parent="Theme.AppCompat.Light.Dialog">
    <item name="colorPrimary">@color/theme_color</item>
    <item name="colorAccent">@color/theme_color_accent</item>
    <item name="colorPrimaryDark">@color/theme_color_dark</item>
    <item name="android:windowTitleStyle">@style/Title</item>
    <item name="android:divider">@null</item>
    <item name="android:windowBackground">@android:color/transparent</item>
</style>

<style name="AlertDialogDark" parent="Theme.AppCompat.Dialog">
    <item name="colorPrimary">@color/theme_color</item>
    <item name="colorAccent">@color/theme_color_accent</item>
    <item name="colorPrimaryDark">@color/theme_color_dark</item>
    <item name="android:windowTitleStyle">@style/Title</item>
    <item name="android:windowBackground">@android:color/transparent</item>
    <item name="android:divider">@null</item>
</style>

<style name="Title" parent="Theme.AppCompat.Dialog">
    <item name="android:textColor">@color/theme_color</item>
    <item name="android:textAppearance">?android:attr/textAppearanceLarge</item>
</style>

<!-- used for enhanced list view-->
<style name="elv_fade_animation">
    <item name="@android:windowEnterAnimation">@anim/elv_popup_show</item>
    <item name="@android:windowExitAnimation">@anim/elv_popup_hide</item>
</style>

<!--  custom progress dialog -->
<style name="CustomProgressDialog" parent="Theme.AppCompat.Dialog">
    <item name="android:windowFrame">@null</item>
    <item name="android:windowBackground">@android:color/transparent</item>
    <item name="android:windowIsFloating">true</item>
    <item name="android:windowContentOverlay">@null</item>
    <item name="android:windowTitleStyle">@null</item>
    <item name="android:windowAnimationStyle">@android:style/Animation.Dialog</item>
    <item name="android:windowSoftInputMode">stateUnspecified|adjustPan</item>
    <item name="android:backgroundDimEnabled">true</item>
</style>

v21/styles.xml

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

<style name="EditTextTheme" parent="android:Widget.Material.EditText">
    <item name="android:background">@drawable/theme_edit_text_holo_light</item>
</style>

<style name="AutoCompleteTextViewTheme" parent="android:Widget.Material.AutoCompleteTextView"></style>

<style name="CheckBoxTheme" parent="android:Widget.Material.CompoundButton.CheckBox">
    <item name="android:button">@drawable/theme_btn_check_holo_light</item>
</style>

<style name="RadioButtonTheme" parent="android:Widget.Material.CompoundButton.RadioButton">
    <item name="android:button">@drawable/theme_btn_radio_holo_light</item>
</style>

<style name="ButtonTheme" parent="android:Widget.Material.Button">
    <item name="android:background">@drawable/theme_btn_default_holo_light</item>
    <item name="android:minHeight">48dip</item>
    <item name="android:minWidth">64dip</item>
</style>

<style name="ButtonThemeDark" parent="android:Widget.Material.Button">
    <item name="android:background">@drawable/theme_btn_default_holo_light</item>
    <item name="android:minHeight">48dip</item>
    <item name="android:minWidth">64dip</item>
    <item name="android:textColor">@color/white_color</item>
</style>

<style name="ImageButtonTheme" parent="android:Widget.Material.ImageButton">
    <item name="android:background">@drawable/theme_btn_default_holo_light</item>
</style>

<style name="SpinnerTheme" parent="android:Widget.Material.Spinner">
    <item name="android:background">@drawable/theme_spinner_background_holo_light</item>
    <item name="android:dropDownSelector">@drawable/theme_list_selector_holo_light</item>
</style>

<style name="SpinnerDropDownItemTheme" parent="android:Widget.Material.DropDownItem.Spinner">
    <item name="android:checkMark">@drawable/theme_btn_radio_holo_light</item>
</style>

<style name="TabTheme">
    <item name="android:gravity">center_horizontal</item>
    <item name="android:paddingLeft">16dip</item>
    <item name="android:paddingRight">16dip</item>
    <item name="android:background">@drawable/theme_tab_indicator_holo</item>
    <item name="android:layout_width">0dip</item>
    <item name="android:layout_weight">1</item>
    <item name="android:minWidth">80dip</item>
</style>

<style name="TabTextTheme">
    <item name="android:textSize">12sp</item>
    <item name="android:textStyle">bold</item>
    <item name="android:textAllCaps">true</item>
    <item name="android:ellipsize">marquee</item>
    <item name="android:maxLines">2</item>
    <item name="android:maxWidth">180dip</item>
</style>

<style name="ProgressBarTheme" parent="android:Widget.Material.ProgressBar.Horizontal">
    <item name="android:progressDrawable">@drawable/theme_progress_horizontal_holo_light</item>
    <item name="android:indeterminateDrawable">@drawable/theme_progress_indeterminate_horizontal_holo_light</item>
    <item name="android:minHeight">16dip</item>
    <item name="android:maxHeight">16dip</item>
</style>

<style name="SeekBarTheme" parent="android:Widget.Material.SeekBar">
    <item name="android:progressDrawable">@drawable/theme_scrubber_progress_horizontal_holo_light</item>
    <item name="android:indeterminateDrawable">@drawable/theme_scrubber_progress_horizontal_holo_light</item>
    <item name="android:minHeight">13dip</item>
    <item name="android:maxHeight">13dip</item>
    <item name="android:thumb">@drawable/theme_scrubber_control_selector_holo_light</item>
    <item name="android:thumbOffset">16dip</item>
    <item name="android:paddingLeft">16dip</item>
    <item name="android:paddingRight">16dip</item>
</style>

<style name="ToggleTheme" parent="android:Widget.Material.Button.Toggle">
    <item name="android:background">@drawable/theme_btn_toggle_holo_light</item>
    <item name="android:minHeight">48dip</item>
</style>

<style name="ListViewTheme" parent="android:Widget.Material.ListView">
    <item name="android:listSelector">@drawable/theme_list_selector_holo_light</item>
</style>

<style name="SpinnerItemTheme" parent="android:TextAppearance.Widget.TextView.SpinnerItem"></style>

<style name="SwitchStyle">
    <item name="android:thumb">@drawable/theme_switch_inner_holo_light</item>
    <item name="android:track">@drawable/theme_switch_track_holo_light</item>
</style>

<style name="AlertDialog" parent="Theme.AppCompat.Light.Dialog">
    <item name="colorPrimaryDark">@color/theme_color_dark</item>
    <item name="android:windowTitleStyle">@style/Title</item>
    <item name="android:divider">@null</item>
</style>

<style name="AlertDialogDark" parent="Theme.AppCompat.Dialog">
    <item name="colorPrimary">@color/theme_color</item>
    <item name="colorAccent">@color/theme_color_accent</item>
    <item name="colorPrimaryDark">@color/theme_color_dark</item>
    <item name="android:windowTitleStyle">@style/Title</item>
    <item name="android:divider">@null</item>
</style>

<style name="Title" parent="Theme.AppCompat.Dialog">
    <item name="android:textColor">@color/theme_color</item>
    <item name="android:textAppearance">?android:attr/textAppearanceLarge</item>
</style>

@drawable 的链接是使用 http://android-holo-colors.com 创建的实际可绘制对象 如果您发现任何其他内容(不良风格或其他),也请告诉我。我是 android.

的新手

由于您使用的是 Theme.AppCompat,因此您不必在商品名称中包含 android: 前缀。如果您想阅读更多相关信息,也可以查看 this question here and this