2016-09-12 3 views
0

Hallo Ich habe ein Thema/Stil für einen AlertDialog erstellt. Allerdings habe ich das Problem mit der Buttonleiste, dass es immer noch grau ist, auch nachdem ich die Hintergrundfarbe eingestellt habe. Auch der Button in der Leiste füllt die Leiste nicht wie erwartet. Ich habe mehrere Dinge ausprobiert, aber ich konnte das nicht schaffen.ButtonbarStyle grey Border

The AlertDialog with the theme

<style name="MyBorderlessButton"> 

    <!-- Set background drawable and text size of the buttons here --> 
    <item name="android:background">@drawable/button_dark_border</item> 
    <item name="android:textColor">@color/white</item> 
</style> 

<style name="MyButtonBar" parent="@android:style/ButtonBar"> 

<!--   Define a background for the button bar and a divider between the buttons here --> 
    <item name="android:divider">?android:attr/dividerVertical</item> 
    <item name="android:dividerPadding">1dp</item> 
    <item name="android:showDividers">middle</item> 
    <item name="android:padding">3dp</item> 
    <item name="android:background">@color/transparent</item> 
</style> 

<style name="MyAlertDialogTitle"> 
    <item name="android:maxLines">1</item> 
    <item name="android:scrollHorizontally">true</item> 
</style> 

<style name="MyAlertTextAppearance"> 

    <!-- Set text size and color of title and message here --> 
    <item name="android:textColor">@color/white</item> 
</style> 

<style name="MyAlertDialogTheme" parent="android:Theme.Dialog"> 
    <item name="android:windowBackground">@color/transparent</item> 
    <item name="android:windowTitleStyle">@style/MyAlertDialogTitle</item> 
    <item name="android:windowContentOverlay">@null</item> 
    <item name="android:windowMinWidthMajor">@android:dimen/dialog_min_width_major</item> 
    <item name="android:windowMinWidthMinor">@android:dimen/dialog_min_width_minor</item> 
    <item name="android:windowIsFloating">true</item> 
    <item name="android:textAppearanceMedium">@style/MyAlertTextAppearance</item> 
    <!-- 
    If you don't want your own button bar style use 
     @android:style/Holo.Light.ButtonBar.AlertDialog 
     and 
     ?android:attr/borderlessButtonStyle 
    instead of @style/MyButtonBar and @style/MyBorderlessButton 


    --> 
    <item name="android:buttonBarStyle">@style/MyButtonBar</item> 
    <item name="android:buttonBarButtonStyle">@style/MyBorderlessButton</item> 
</style> 

<style name="MyAlertDialogStyle"> 

    <!-- Define background colors of title, message, buttons, etc. here --> 
    <item name="android:background">@color/drawer_background</item> 
</style> 

button_dark_border:

<shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="rectangle" > 
    <solid android:color="@color/drawer_background" /> 
    <stroke android:width="1dip" android:color="@color/white"/> 
</shape> 

Wie kann ich die Buttonleiste auch schwarz zu machen und die Taste, um den Alertdialog wieder füllen?

Antwort

0

Ich habe das Problem behoben, indem ich die Styles-Datei aktualisiert habe. Nach einiger Zeit stellte ich fest, dass das Elternattribut einige meiner Änderungen blockierte. Hier ist meine styles.xml jetzt

<style name="Theme.PeeDeeTheme" parent="Theme.AppCompat.Light.NoActionBar"> 
    <item name="android:alertDialogTheme">@style/PeeDeeAlertDialogTheme</item> 
    <item name="android:alertDialogStyle">@style/PeeDeeAlertDialogStyle</item> 
</style> 
<style name="MyBorderlessButton"> 

    <!-- Set background drawable and text size of the buttons here --> 
    <item name="android:background">@color/primarycolor_dark</item> 
    <item name="android:textColor">@color/white</item> 
    <!-- 
     Setting the weight as follows should result in equally wide buttons filling the alert dialog width, 
     but instead they span further out of the dialog, breaking in multiple lines though 

    --> 
    <item name="android:layout_width">0dp</item> 
    <item name="android:layout_weight">1</item> 
    <item name="android:layout_height">15dp</item> 
    <item name="android:height">@null</item> 
</style> 

<style name="MyButtonBar"> 

    <!-- Define a background for the button bar and a divider between the buttons here --> 
    <item name="android:divider">?android:attr/listDivider</item> 
    <item name="android:dividerHeight">1dp</item> 
    <item name="android:showDividers">none</item> 
    <item name="android:padding">0dp</item> 
    <item name="android:background">@color/transparent</item> 
    <!-- Making sure, the button bar uses parent width and is not restricted in height --> 
    <item name="android:layout_width">match_parent</item> 
    <item name="android:layout_height">wrap_content</item> 
    <item name="android:height">@null</item> 
    <item name="android:minHeight">@null</item> 
</style> 

<style name="MyAlertDialogTitle"> 
    <item name="android:maxLines">1</item> 
    <item name="android:scrollHorizontally">true</item> 
    <item name="android:textColor">@color/defaultcolor_drawer</item> 
</style> 

<style name="MyAlertTextAppearance"> 

    <!-- Set text size and color of title and message here --> 
    <item name="android:textColor">@color/white</item> 
</style> 

<style name="MyAlertDialogTheme"> 
    <item name="android:windowBackground">@color/transparent</item> 
    <item name="android:windowTitleStyle">@style/MyAlertDialogTitle</item> 
    <item name="android:windowContentOverlay">@null</item> 
    <item name="android:windowMinWidthMajor">@android:dimen/dialog_min_width_major</item> 
    <item name="android:windowMinWidthMinor">@android:dimen/dialog_min_width_minor</item> 
    <item name="android:windowIsFloating">true</item> 
    <item name="android:textAppearanceMedium">@style/MyAlertTextAppearance</item> 
    <item name="android:buttonBarStyle">@style/MyButtonBar</item> 
    <item name="android:buttonBarButtonStyle">@style/MyBorderlessButton</item> 
    <item name="android:panelBackground">@color/transparent</item> 
</style> 

<style name="MyAlertDialogStyle"> 

    <!-- Define background colors of title, message, buttons, etc. here --> 
    <item name="android:fullDark">@color/drawer_background</item> 
    <item name="android:topDark">@color/drawer_background</item> 
    <item name="android:centerDark">@color/drawer_background</item> 
    <item name="android:bottomDark">@color/transparent</item> 
    <item name="android:fullBright">@color/drawer_background</item> 
    <item name="android:topBright">@color/drawer_background</item> 
    <item name="android:centerBright">@color/drawer_background</item> 
    <item name="android:bottomBright">@color/transparent</item> 
    <item name="android:bottomMedium">@color/transparent</item> 
    <item name="android:centerMedium">@color/drawer_background</item> 
    <item name="android:panelBackground">@color/drawer_background</item> 
</style>