如何继承AlertDialog按钮的样式

时间:2016-02-04 09:33:12

标签: android button styles

我想在AlertDialog这样的片段中制作我的按钮样式,我该怎么做呢 我应该为我的按钮继承或设置哪种风格

我的styles.xml

<!-- Base application theme. -->
<style name="AppTheme" parent="Theme.AppCompat.Light.NoActionBar">
    <!-- 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:spinnerItemStyle">@style/Spinner</item>
</style>
<style name="AppTheme.NoActionBar">
    <item name="windowActionBar">false</item>
    <item name="windowNoTitle">true</item>
</style>
<style name="AppTheme.AppBarOverlay" parent="ThemeOverlay.AppCompat.Dark.ActionBar" />
<style name="AppTheme.PopupOverlay" parent="ThemeOverlay.AppCompat.Light" />

由于

1 个答案:

答案 0 :(得分:1)

以下是我在应用中如何完成此操作的简单示例。您需要在AppTheme中设置alertDialogTheme。您也可以将样式应用于按钮。以下是使用您的代码的示例。

<!-- Base application theme. -->
<style name="AppTheme" parent="Theme.AppCompat.Light.NoActionBar">
    <!-- 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:spinnerItemStyle">@style/Spinner</item>
    <item name="android:alertDialogTheme">@style/AlertDialogTheme</item>
</style>
<style name="AppTheme.NoActionBar">
    <item name="windowActionBar">false</item>
    <item name="windowNoTitle">true</item>
</style>
<style name="AppTheme.AppBarOverlay" parent="ThemeOverlay.AppCompat.Dark.ActionBar" />
<style name="AppTheme.PopupOverlay" parent="ThemeOverlay.AppCompat.Light" />

<style name="AlertDialogTheme" parent="Theme.AppCompat.Light.Dialog.Alert">
        <item name="android:textColor">@android:color/black</item>
        <item name="android:textColorPrimary">@android:color/holo_red_dark</item>
        <item name="android:textColorSecondary">@android:color/holo_orange_light</item>
        <item name="colorAccent">@android:color/holo_purple</item>
        <item name="colorControlHighlight">@android:color/holo_purple</item>
        <item name="buttonBarNegativeButtonStyle">@style/NegativeButton</item>
        <item name="buttonBarPositiveButtonStyle">@style/PositiveButton</item>
</style>

<style name="NegativeButton"
       parent="android:Widget.DeviceDefault.Button.Borderless">
    <item name="android:textColor">@android:color/holo_green_dark</item>
</style>

<style name="PositiveButton"
       parent="android:Widget.DeviceDefault.Button.Borderless">
    <item name="android:textColor">@android:color/green</item>
</style>