StyledDialogs

Additional

Language
Java
Version
2.3.3 (Jan 14, 2016)
Created
May 25, 2013
Updated
May 28, 2019 (Retired)
Owner
Avast (avast)
Contributors
Roadster Tracker (kd7uiy)
Eva (evant)
Chris Arriola (arriolac)
Reinier Goltstein (mrgoltstein)
Boris Korogvich (VEINHORN)
Tomáš Procházka (tprochazka)
Tomas Vondracek (tomas-vondracek)
Konst Kolesnichenko (mr-const)
Jonathan Fragoso Pérez (jfragosoperez)
Frank Harper (franklinharper)
Petr Šimek (petrsimek)
Maria Neumayer (marianeum)
Sam.Z.D (samerzmd)
Ondřej Čermák (cermakcz)
Tomas Kypta (TomasKypta)
David Vavra (davidvavra)
Marta Rodriguez (martarodriguezm)
MonikaJethani
18
Activity
Badge
Generate
Download
Source code

StyledDialogs for Android

Demo app:

Features:

  • Compatible with Material Design Guidelines
  • Same look for Android 2.2+
  • Built on top of standard DialogFragment
  • Supports stacked buttons, neutral button, callbacks even after rotation
  • Light and dark theme
  • Contains even more specialized dialogs: List, Progress, Time&Date Picker, Custom, ...

How to include it in your project:

dependencies {
 compile 'com.avast:android-styled-dialogs:2.3.3'
}

Hosted in jcenter:

Looking for Holo dialogs?

How to style all dialogs:

It uses standard Material colors, for example like this:

<style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar">
        <item name="colorPrimary">@color/indigo</item>
        <item name="colorPrimaryDark">@color/indigo_dark</item>
        <item name="colorAccent">@color/pink</item>
</style>

For dark theme, inherit from Theme.AppCompat. Or you can force dark theme per individual dialog using useDarkTheme() builder method. You can also force light theme per individual dialog using useLightTheme() builder method.

How to create simple dialogs:

Easy:

Dialog with a simple message only:

SimpleDialogFragment.createBuilder(this, getSupportFragmentManager()).setMessage(R.string.message).show();

Dialog with a title, message and two buttons:

SimpleDialogFragment.createBuilder(this, getSupportFragmentManager()).setTitle(R.string.title).setMessage(R.string.message).setPositiveButtonText(R.string.positive_button).setNegativeButtonText(R.string.negative_button).show();

How to react on button press in your Activity/Fragment:

Simply implement interface ISimpleDialogListener in your Activity/Fragment. Listener's callbacks have requestCode parameter - you can use it if you have more dialogs in one Activity/Fragment.

For Fragments use setTargetFragment() method in the builder.

It's not possible to use normal Java callbacks, because they are lost after device rotation.

How to react on cancelling the dialog:

Implement interface ISimpleDialogCancelListener in your Activity/Fragment.

How to create custom DialogFragments:

Extend BaseDialogFragment.

Have a look at JayneHatDialogFragment for a practical example.

Contributing

Pull requests are welcomed!

Please set your Android Studio formatting to our code style.

Why 'Dialogs'?

Theodor Dialogs was a famous Czech painter, uncle of Jára Cimrman. Jára Cimrman was a playwright, philosopher, inventor, teacher, poet, mathematician and more but he lacked painting skills. That's why Theodor was helping him with many projects. Just like Android and this library do.

See our other Czech personalities who help with #AndroidDev.