Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Light theme for AlertDialog?

Tags:

android

I'm creating an AlertDialog. I'm using setView() to set a custom view. This enables the 'dark' theme on the dialog (grey background, and need white text).

Is there a way to set the dialog to use the 'light' theme? It looks nicer (white background, dark text).

Thanks

like image 569
user291701 Avatar asked Aug 17 '10 21:08

user291701


1 Answers

Steps I took:

  • Create a class extending Dialog.
  • In the onCreate, call setContentView(x, y) with x being your R.layout and y being R.style.popupStyle (see below).
  • In your res/values/style.xml, you need to override the default DialogWindow style. I tried just making a style that has this one as its parent, but that still didn't clear all defaults. So I checked the Android git tree and got the default style, and just copy-pasted it. This is the one

:

<style name="Theme.Dialog">
    <item name="android:windowFrame">@null</item>
    <item name="android:windowTitleStyle">@android:style/DialogWindowTitle</item>
    <item name="android:windowBackground">@android:drawable/panel_background</item>
    <item name="android:windowIsFloating">true</item>
    <item name="android:windowContentOverlay">@null</item>
    <item name="android:windowAnimationStyle">@android:style/Animation.Dialog</item>
    <item name="android:windowSoftInputMode">stateUnspecified|adjustPan</item>
</style>

You'll get a few errors, just solve them by copying more stuff from the official Android styles.xml and themes.xml files.

for reference: styles.xml and themes.xml.

like image 83
Mitul Nakum Avatar answered Sep 29 '22 22:09

Mitul Nakum